【发布时间】:2011-06-15 11:44:02
【问题描述】:
类似的回答问题都没有解决我的问题,所以就这样吧。 我想从 JavaScript 调用 actionscript 3 函数,但在 FF 错误控制台中它说我从 JS 调用的函数不存在。它说函数 mover 和 mout 没有定义。
这是JS文件中的JS函数
function getFlashMovieObject(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
function playF() {
getFlashMovieObject("Button2").mover();
}
function playB() {
getFlashMovieObject("Button2").mout();
}
这是 HTML 中的代码
<object style="width: 413px; height: 76px;" id="Button2" onMouseOver="playF()" onMouseOut="playB()">
<param name="movie" value="homepage/flash/Button2.swf">
<param value="transparent" name="wmode"/>
<param value="false" name="loop"/>
<embed wmode="transparent" play=false src="homepage/flash/Button2.swf" width="413" height="76" loop="false" swliveconnect="true" name="Button2"></embed>
</object>
以及 Actionscript 3 中的代码
ran.stop();
function mover() {
stopPlayReverse();
this.addEventListener(Event.ENTER_FRAME, playForward, false, 0, true);
}
function mout() {
stopPlayForward();
this.addEventListener(Event.ENTER_FRAME, playReverse, false, 0, true);
}
function playReverse(e:Event):void {
if (ran.currentFrame == 1) {
stopPlayReverse();
} else {
ran.prevFrame();
}
}
function playForward(e:Event):void {
if (ran.currentFrame == ran.totalFrames) {
stopPlayForward();
} else {
ran.nextFrame();
}
}
function stopPlayForward():void {
if (this.hasEventListener(Event.ENTER_FRAME)) {
ran.removeEventListener(Event.ENTER_FRAME, playForward);
}
}
function stopPlayReverse():void {
if (this.hasEventListener(Event.ENTER_FRAME)) {
ran.removeEventListener(Event.ENTER_FRAME, playReverse);
}
}
ExternalInterface.addCallback("mover", mover);
ExternalInterface.addCallback("mout", mout);
我的想法是我想用 javascript 控制鼠标悬停,当我将鼠标悬停在对象上时,电影会正常播放,但当我悬停时,电影会向后播放。我在一层上有电影剪辑,在另一层上有我的动作脚本代码。谁能告诉我我做错了什么?谢谢
【问题讨论】:
-
不同时使用 AS3 和 Javascript 是一个有效的答案吗?最好通过 AS3 和 Flash 在内部处理事情。
-
尝试将getFlashMovieObject函数体改成
return document.getElementById(movieName) -
我不接受失败。我知道人们得到了这个工作。 @Tom Tu 我试过了,但同样的错误。函数未定义。
标签: javascript actionscript-3 externalinterface