使用externalInterface.addCallback()容易犯的两个错误
2012-02-06 12:12:23 来源:本站整理 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬姣挎捇鏌熸笟鍨妞ゎ偅绮撳畷鍗炍旈埀顒勭嵁婵犲嫮纾介柛灞捐壘閳ь剛鎳撻~婵嬪Ω閳轰胶鐤呯紓浣割儐椤戞瑩宕ョ€n喗鐓曟い鎰靛亝缁舵氨绱撻崘鈺傜婵﹤顭峰畷鎺戔枎閹搭厽袦婵犵數濮崑鎾绘⒑椤掆偓缁夌敻骞嗛悙鍝勭婵烇綆鍓欐俊鑲╃磼閹邦収娈滈柡灞糕偓鎰佸悑閹肩补鈧尙鏁栧┑鐐村灦閹稿摜绮旈悽绋课﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绱掑Ο璇茶敿闂佺ǹ娴烽弫璇差嚕婵犳碍鏅插璺猴工瀹撳棝姊虹紒妯哄缂佷焦鎸冲畷鎴﹀箻鐠囧弶宓嶅銈嗘尰缁嬫垶绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�

核心提示:ExternalInterface类是实现JavaScript与ActionScript之间通信的编程接口,其中addCallback()方法使用最广泛,使用externalInterface.addCallback()容易犯的两个错误,该方法将ActionScript方法注册为可从容器调用,如果浏览器不支持调用或无权
ExternalInterface类是实现JavaScript与ActionScript之间通信的编程接口,其中addCallback()方法使用最广泛,该方法将ActionScript方法注册为可从容器调用。如果浏览器不支持调用或无权访问的安全沙箱,将引发错误,大家可以参考帮助解决这些常见问题。本文讲述的实际应用中使用addCallback()方法容易犯的其它两个错误。
1. 错误:对象不支持此属性或方法。这是因为ActionScript方法还没注册成功就在容器中调用。最简单的解决方法是在注册ActionScript方法后,使用call()方法调用JS函数来检验注册状态,再在该函数体中调用ActionScript方法。
在本实例中,如果使用<body onload="selectCatalog(1)">就会出现上述错误。如果在注册addCallback()方法后,调用isReady()函数。因为这两句ActionScript是顺序执行的,所以再在该JavaScript函数中调用selectCatalog(1)函数就没有问题了。
2. 错误:在IE成功中调用addCallback(),而在Firefox中却没有反应。这是因为它们对swf对象的引用语法不一样,IE中用window[movieName],而Firefox中使用document[movieName],需要判断一下浏览器的类型再分别处理,或者用document.getElementById("movieName")。
在本实例中,如果使用Main.getSongList(data)就会出现上述错误,我们使用thisMovie()函数解决了这一问题。
Tags:使用 externalInterface addCallback
编辑录入:coldstar [复制链接] [打 印]赞助商链接