Mr_*_*ime 2 javascript browser flash interface
我有一个flash文件,其中包含一个包含"Scores"类和方法setValue()的包"game".我想写一些允许我调用该方法的Javascript行.有人指导我参加本教程,但我仍然有点困惑.
Javascript: alert("start"); var so; so = document.embeds[0];
so.addParam("allowScriptAccess","always"); import flash.external.ExternalInterface;
ExternalInterface.call("setValue[2600]");
Run Code Online (Sandbox Code Playgroud)
我不确定这个类的东西是如何工作的?这只是我从该网站上得到的点点滴滴,但我真的不明白它是如何工作的(但最终还是希望).这是网站:http://bytes.com/topic/flash/answers/694359-how-do-i-access-flash-function-using-javascript.当我执行带有输入的代码时没有任何反应,但是当我没有该声明时,警报会出现吗?
如果有人能详细说明我怎么称呼这种方法,我会非常感激!:)
你在那里的代码是JavaScript和ActionScript的混合.
在ActionScript中,您需要注册setValue函数以供外部使用,因此可以从JavaScript调用它.代码看起来像这样:
package game
{
import flash.display.Sprite;
import flash.external.ExternalInterface;
import flash.text.TextField;
public class Scores extends Sprite
{
public var txtScore:TextField; // A textfield in the sprite
public function Scores()
{
// Register the function for external use.
ExternalInterface.addCallback("setValue", setValue);
}
private function setValue(value:Number):void
{
txtScore.text = String(value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
JavaScript可能看起来像这样:
var so = document.embeds[0];
so.setValue(2600);
Run Code Online (Sandbox Code Playgroud)