读书人

AS3调用浏览器中JS如果JS还未加载出

发布时间: 2012-03-18 13:55:39 作者: rapoo

AS3调用浏览器中JS,如果JS还未加载出来咋办?
页面中加载FLASH,然后FLASH中有一个方法需要调用页面中的JS,但是会有可能FLASH加载完成后,JS还未加载完成,这样就调不到JS方法,请问高手有什么好的解决办法

[解决办法]
也就是说,最初设置js的变量jsReady为假,当页面加载完毕后,将其设置为真。isReady函数供Flash调用,返回jsReady变量。Flash代码如下:

JScript code
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();            }        }    }} 

读书人网 >Flash

热点推荐