国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Flex > 正文

js調用Flex中的方法并向flex中傳參及flex調用js示例

2024-09-08 18:17:19
字體:
來源:轉載
供稿:網友
首先,有了一個swf文件,test.swf,同時也有一個自動生成的html文件,test.html。
然后,在另外一個文件,test.jsp中,通過iframe,引入了test.html,即引入了swf。

現在想要在test.jsp中,向flex傳參,并調用flex中的方法,我采用的方法是:
首先,在jsp中寫一個調用flex的方法,如下
復制代碼 代碼如下:

function initSWF(){
//得到swf的object
var obj = window.frames["rightframe"].ReverseQuery; //rightframe是iframe的名字,ReverseQuery是在test.html中,引入swf做object的id。
//調用它的方法
var start = "<%=startPoint%>";
var end = "<%=endPoint%>";
obj.showParams(start,end);
}
在html中,有方法
/*在flex中只能調用本頁面的js方法*/
function initSWF(){
parent.initSWF();
}
在flex,有如下方法:
public function showParams(start:String,end:String):void{
Alert.show(start);
Alert.show(end);
}

這時,需要建立一個打開他們之間通信的橋梁了,在flex的初始化時,要使用
ExternalInterface.addCallback("showParams",showParams); //前者是它暴露給js的方法名,后者是它在flex中的方法名。
這樣,理論上就可以實現調用了。將initSWF方法放在頁面的onload方法中即可實現。

但是產生一個問題,如果flex在頁面中沒有加載成功時,會報找不到對象的錯誤。因此,需要我們在確保swf文件加載完成后,再調用swf中的方法。
但監聽它加載完成顯然有點浪費感情,于是,我們采用的策略是,等它加載完,再調用js的initSWF方法,即可將環節全部打通。

因此,在flex的初始化時,加入
//調用載入頁面的initSWF方法
ExternalInterface.call("initSWF"); //要將它放在注冊對外方法之后進行。
大功告成。

有需要注意的地方:
在flex當中調用js的方法,這個方法只能寫在引入swf的文件中,但我在jsp中引入了html,所以只能是在html中的js,是調用父頁面的js方法。
而在jsp中對于swf文件的引用,要借助window.frames["rightframe"]
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 准格尔旗| 舒兰市| 临安市| 来宾市| 讷河市| 兴宁市| 兴和县| 蒲江县| 长春市| 岱山县| 富顺县| 青川县| 乌鲁木齐市| 衡阳市| 嵩明县| 太保市| 石嘴山市| 辽阳市| 平顺县| 同仁县| 修水县| 唐河县| 克山县| 临桂县| 卢湾区| 玉林市| 侯马市| 铜陵市| 龙陵县| 新沂市| 临江市| 宁国市| 仲巴县| 湟中县| 宜川县| 库伦旗| 吉木乃县| 泉州市| 泰安市| 特克斯县| 马山县|