AS3调用浏览器中JS,如果JS还未加载出来咋办?
页面中加载FLASH,然后FLASH中有一个方法需要调用页面中的JS,但是会有可能FLASH加载完成后,JS还未加载完成,这样就调不到JS方法,请问高手有什么好的解决办法
[解决办法]
也就是说,最初设置js的变量jsReady为假,当页面加载完毕后,将其设置为真。isReady函数供Flash调用,返回jsReady变量。Flash代码如下:
package { import flash.display.Sprite; import flash.events.*; import flash.external.ExternalInterface; import flash.utils.Timer; public class ExternalInterfaceExample extends Sprite { public function ExternalInterfaceExample() { if (ExternalInterface.available) { try { if (checkJavaScriptReady()) { trace("JavaScript is ready."); } else { var readyTimer:Timer = new Timer(100, 0); readyTimer.addEventListener(TimerEvent.TIMER, timerHandler); readyTimer.start(); } } catch (error:Error) { } } else { } } private function checkJavaScriptReady():Boolean { var isReady:Boolean = ExternalInterface.call("isReady"); return isReady; } private function timerHandler(event:TimerEvent):void { var isReady:Boolean = checkJavaScriptReady(); if (isReady) { Timer(event.target).stop(); } } }}