接這上一篇繼續...javascript
2 藉助第三方的對象文件html
swfobject.js 來向swf 傳參java
超連接的方式傳參express
<a href="VideoPlay.html?address=http://www.lxzq.com.cn/video/ty20100915_1.flv">Test</a>框架
接收參數的頁面ide
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">函數
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> flex
<head>ui
<title></title>url
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var flashvars = {};
//獲取URL參數對值,並賦給flashvars變量
if (swfobject.getQueryParamValue("address")) //獲取超連接的url?後面的參數
{
flashvars.address= swfobject.getQueryParamValue("address"); //給swf文件傳入參數
}
var params = {}; //必定是要這個params
params.allowFullScreen ="true"; //容許全屏否 根據本身的須要來設置參數
var attributes = {};
attributes.id = "swf"; //將嵌入的SWF文件寫入對應id的div中去,並向SWF文件傳入相應的參數
swfobject.embedSWF("VideoPlay.swf", "swf", "1000", "500", "10.0.0", "expressInstall.swf", flashvars, params, attributes);
</script>
</head>
// swfobject.embedSWF裏面的swf對應的是<div>的id 是將swf文件放在哪裏
<body>
<div id="swf">
</div>
</body></html>
3 flex端與就javascript的通訊
須要使用到ExternalInterface 這個對象
Flex端的代碼
private function callJavaScript():void {
show.text = ExternalInterface.call("sayHelloWorld");
}
// sayHelloWorld 這個就是javascript的裏面的方法名
固然ExternalInterface.call這個方法還能夠傳參
ExternalInterface.call("js的函數名",」參數」)
那麼在html頁面這一塊的代碼
很簡單
Function sayHelloWorld()
{
作本身須要的處理
若是flex端要接受返回值的話
那麼js裏面就必定要
return 「xxxxx」;
}
貌似這個有個弊端
那就是 這種flex與javascript的互調只能在擁有flex框架載體的狀況下才能用
也就是flex工程裏面才能夠用
爲何這麼說 那是由於 我以前就是經過這種方式 讓swf文件去調用js的函數
脫離了flex的工程 行不通
網上 基本上都是說的在flex工程的bin-degug文件下系統自動生成的html裏面寫js
我試過 只要是flex項目裏面 flex 和javascript的相互調用是沒問題的