JS和Flash互相调用Function不成功,请教高手
本人最近开始学习flash,需要用到js和flash互相调用function,根据资料使用FLash的ExternalInterface的call和addCallback方法,但是没有成功,本人使用的是Flash CS4,用的AS3.0,代码如下,请各位高手指点。
页面代码html:
对于的flash代码,本人是在一个名叫2.fla的第一个图层上的第一帧添加动作,编辑的一下代码:
import flash.external.ExternalInterface;
var output:TextField=new TextField();//js调用状态显示文本
var readyTimer:Timer=new Timer(100,0);
if (ExternalInterface.available) {
try {
output.appendText(checkJavaScriptReady());
if (checkJavaScriptReady()) {
output.appendText("JavaScript is ready.\n");
ExternalInterface.call("test");
ExternalInterface.addCallback("jstest",jstest);
} else {
output.appendText("JavaScript is not ready, creating timer.\n");
readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);
readyTimer.start();
}
} catch (error:SecurityError) {
output.appendText("A SecurityError occurred(安全错误): " + error.message + "\n");
} catch (error:Error) {
output.appendText("A SecurityError occurred(错误): " + error.message + "\n");
}
} else {
output.appendText("External interface不可用。");
};
function checkJavaScriptReady() {
var isReady:Boolean=ExternalInterface.call("isReady");
return isReady;
}
function timerHandler(event:TimerEvent):void {
var isReady:Boolean=checkJavaScriptReady();
if (isReady) {
ExternalInterface.addCallback("jstest",jstest);
Timer(event.target).stop();
}
}
function jstest():void {
ExternalInterface.call("test");
}
小弟在线求指导,谢谢
页面代码html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<script language="JavaScript">
var jsReady = false;
function isReady() {
return jsReady;
}
function pageInit() {
jsReady = true;
}
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
function test(){
alert("成功!");
}
function cpu(){
thisMovie("2").jstest();
}
</script>
</head>
<body onLoad="pageInit();">
<table>
<tr>
<td>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="2" width="500" height="375"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="2.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="2.swf" quality="high" bgcolor="#869ca7"
width="500" height="375" name="2" align="middle"
play="true" loop="false" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://get.adobe.com/flashplayer/">
</embed>
</object>
</td>
</tr>
<tr>
<td>
<input name="test" type="button" value="test" onclick="cpu();" />
</td>
</tr>
</table>
</body>
</html>
对于的flash代码,本人是在一个名叫2.fla的第一个图层上的第一帧添加动作,编辑的一下代码:
import flash.external.ExternalInterface;
var output:TextField=new TextField();//js调用状态显示文本
var readyTimer:Timer=new Timer(100,0);
if (ExternalInterface.available) {
try {
output.appendText(checkJavaScriptReady());
if (checkJavaScriptReady()) {
output.appendText("JavaScript is ready.\n");
ExternalInterface.call("test");
ExternalInterface.addCallback("jstest",jstest);
} else {
output.appendText("JavaScript is not ready, creating timer.\n");
readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);
readyTimer.start();
}
} catch (error:SecurityError) {
output.appendText("A SecurityError occurred(安全错误): " + error.message + "\n");
} catch (error:Error) {
output.appendText("A SecurityError occurred(错误): " + error.message + "\n");
}
} else {
output.appendText("External interface不可用。");
};
function checkJavaScriptReady() {
var isReady:Boolean=ExternalInterface.call("isReady");
return isReady;
}
function timerHandler(event:TimerEvent):void {
var isReady:Boolean=checkJavaScriptReady();
if (isReady) {
ExternalInterface.addCallback("jstest",jstest);
Timer(event.target).stop();
}
}
function jstest():void {
ExternalInterface.call("test");
}
小弟在线求指导,谢谢
...全文
相关推荐
flash和js互相访问
flash和js互相访问,在flash中调用页面的JS代码。在JS中访问Flash中的对象
js调用flash问题
NULL 博文链接:https://feitu-jeff.iteye.com/blog/1889137
JavaScript通过代码调用Flash显示的方法
主要介绍了JavaScript通过代码调用Flash显示的方法,实例分析了JavaScript通过flash插件swfobject.js调用flash显示的具体操作技巧,需要的朋友可以参考下
JS 调用Flash播放mp3
JS 调用Flash播放mp3 提供JS调用接口 可控制停止、更换
jsp和flash函数互相调用.txt
jsp和flash函数互相调用的方法ExternalInterface.call和ExternalInterface.addCallback


