首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

AS3调用浏览器中JS,如其JS还未加载出来咋办

2013-01-04 
AS3调用浏览器中JS,如果JS还未加载出来咋办?页面中加载FLASH,然后FLASH中有一个方法需要调用页面中的JS,但

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


}

热点排行