【发布时间】:2011-03-17 17:26:55
【问题描述】:
我想从JS调用AS函数。
我有以下 ActionScript 3 代码:
package {
import flash.display.*;
import flash.events.*;
import flash.system.*;
import flash.external.ExternalInterface;
public class Main extends Sprite {
public function Main()
{
ExternalInterface.addCallback("PlaySound", PlaySound);
}
public function PlaySound():void
{
}
}
}
我需要从 JavaScript 调用函数 PlaySound()。我尝试通过以下方式做到这一点:
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
function m()
{
var obj=thisMovie("Main");
obj.PlaySound();
}
但是 obj 没有方法 PlaySound()(obj 不为 null)。
怎么了?
【问题讨论】:
-
但是 obj 没有 PlaySound() 方法(obj 不为空)。 -> 这是什么意思?您是否尝试过在您的 as3 PlaySound 方法中跟踪某些内容?
-
这意味着,JavaScript 对象 obj 没有方法 PlaySound。但是 obj 不是 null - 所以,函数 thisMovie 是正确的。我找到了解决方案,请参阅下一个答案。谢谢。
标签: javascript flash actionscript-3 externalinterface