Jon*_*Jon 0 javascript flash actionscript-3
我有一个flash电影,需要一些包含文件的JavaScript,但我希望能够将它嵌入任何地方而无需脚本标记.
有没有办法使用ExternalInterface库包含外部JavaScript文件,以便稍后调用JavaScript包含文件中的方法?
谢谢!
没有多少人意识到这一点,但您可以在.as文件中编写内联Javascript,甚至传递值,如下所示:
var someVarInAS : String = 'foo';
var someOtherVarInAS : int = 10;
var jsXML : XML =
<script type="text/javascript">
var someVarInJS = '{someVarInAS}';
var someOtherVarInJS = {someOtherVarInAS};
<![CDATA[
//here be code
alert( 'this comes from flash: ' + someVarInJS + ', ' + someOtherVarInJS );
]]>
</script>;
ExternalInterface.call( "function js_" + ( new Date().getTime() ) + "(){ " + jsXML + " }" );
Run Code Online (Sandbox Code Playgroud)
有几点需要注意:
new Date().getTime())来确保函数始终具有唯一的名称,并且不能与可能具有相同名称的另一个名称冲突.;背后</script>告诉编译器你的javascript结束那里