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

truthsun22 2011-05-16 05:30:42
页面中加载FLASH,然后FLASH中有一个方法需要调用页面中的JS,但是会有可能FLASH加载完成后,JS还未加载完成,这样就调不到JS方法,请问高手有什么好的解决办法
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
diffmaker 2011-05-16
  • 打赏
  • 举报
回复
也就是说,最初设置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();
}
}
}
}
diffmaker 2011-05-16
  • 打赏
  • 举报
回复
这个在帮助文档中有很好的示例,在调用JS之前,检测JS是否已经备好
简单代码,HTML的
<script language="JavaScript">
var jsReady = false;
function isReady() {
return jsReady;
}
function pageInit() {
jsReady = true;
}
</script>
</head>
<body onload="pageInit();">


2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧