最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js調(diào)用Flex中的方法并向flex中傳參及flex調(diào)用js示例

 更新時間:2013年07月09日 17:43:50   作者:  
本文為大家詳細(xì)介紹喜愛js調(diào)用Flex中的方法以及向flex中傳參與flex調(diào)用js,具體示例如下,感興趣的朋友不妨參考下,希望對大家有所幫助
首先,有了一個swf文件,test.swf,同時也有一個自動生成的html文件,test.html。
然后,在另外一個文件,test.jsp中,通過iframe,引入了test.html,即引入了swf。

現(xiàn)在想要在test.jsp中,向flex傳參,并調(diào)用flex中的方法,我采用的方法是:
首先,在jsp中寫一個調(diào)用flex的方法,如下
復(fù)制代碼 代碼如下:

function initSWF(){
//得到swf的object
var obj = window.frames["rightframe"].ReverseQuery; //rightframe是iframe的名字,ReverseQuery是在test.html中,引入swf做object的id。
//調(diào)用它的方法
var start = "<%=startPoint%>";
var end = "<%=endPoint%>";
obj.showParams(start,end);
}
在html中,有方法
/*在flex中只能調(diào)用本頁面的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中的方法名。
這樣,理論上就可以實(shí)現(xiàn)調(diào)用了。將initSWF方法放在頁面的onload方法中即可實(shí)現(xiàn)。

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

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

有需要注意的地方:
在flex當(dāng)中調(diào)用js的方法,這個方法只能寫在引入swf的文件中,但我在jsp中引入了html,所以只能是在html中的js,是調(diào)用父頁面的js方法。
而在jsp中對于swf文件的引用,要借助window.frames["rightframe"]

相關(guān)文章

最新評論

衡南县| 温州市| 曲周县| 江孜县| 磐石市| 黎川县| 龙泉市| 巴青县| 英德市| 莱州市| 长乐市| 黎川县| 手机| 沈阳市| 翼城县| 吴旗县| 盐亭县| 万载县| 泸州市| 滁州市| 龙州县| 昂仁县| 达拉特旗| 宜宾市| 静宁县| 麻城市| 都匀市| 平凉市| 南木林县| 黄梅县| 清丰县| 恩平市| 壤塘县| 自贡市| 嘉禾县| 龙山县| 易门县| 清原| 梁山县| 正镶白旗| 文登市|