Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ActionScript3内联Javascript_Javascript_Actionscript 3 - Fatal编程技术网

ActionScript3内联Javascript

ActionScript3内联Javascript,javascript,actionscript-3,Javascript,Actionscript 3,我有以下javascript代码: <script type="text/javascript"> $(document).ready(function() { $("body").append('<div id="ajaxBusy" class="ajaxBusy"></div>'); </script> $(文档).ready(函数(){ $(“正文”)。附加(“”); 到目前为止,我的代码运行良好,但我想在AS3中加载此javasc

我有以下javascript代码:

<script type="text/javascript">
$(document).ready(function() {  
$("body").append('<div id="ajaxBusy" class="ajaxBusy"></div>');
</script>

$(文档).ready(函数(){
$(“正文”)。附加(“”);
到目前为止,我的代码运行良好,但我想在AS3中加载此javascript代码

有没有可能做到这一点?在我的flash中编写内联javascript代码; 我找到了这个代码,但我不知道如何实现

import flash.external.ExternalInterface;

var someVarInAS : String = 'foo';
var someOtherVarInAS : int = 10;
var jsXML : XML = 
<script type="text/javascript">
    var someVarInJS = '{$("body").append('<div id="ajaxBusy" class="ajaxBusy"></div>');}';
    var someOtherVarInJS = '{$('#login').fadeIn();}';
    <![CDATA[       
        alert( 'this comes from flash: ' + someVarInJS + ', ' + someOtherVarInJS );
    ]]>
</script>;


ExternalInterface.call( "function js_" + ( new Date().getTime() ) + "(){ " + jsXML + " }" );
导入flash.external.ExternalInterface;
var someVarInAS:String='foo';
其他变量:int=10;
var jsXML:XML=
var someVarInJS='{$(“body”).append('');}';
var someOtherVarInJS='{$('#login').fadeIn();}';
;
调用(“函数js++(new Date().getTime())+”({“+jsXML+”}”);

有人能帮我做这件事吗?

这里有一个链接,指向一个示例,演示
外部接口的工作原理

发生的事情是,一旦Flash对象加载到页面上,它就会使用

ExtenalInterface.call();
调用已在swf所在页面上注册的javascript函数。在本例中:

ExternalInterface.call('toJS', 'flash text');
调用javascript函数
toJS
,并发送一个参数,一个字符串
“flash text”

也支持相反的方向。在flash对象上调用函数并传入参数会将它们发送到flash。您可以使用以下方式注册外部接口回调:

ExternalInterface.addCallback(callback_name, flash_function_to_call);
在本例中,我们在flash中注册回调:

ExternalInterface.addCallback("fromJS", this.fromJS);
它侦听来自javascript的名为
fromJS
的事件,并调用内部函数
fromJS
。例如,我在舞台上添加了一个文本框,以可视化来自javascript的数据

请让我知道这是否回答了您的问题,或者您是否需要更多的解释

编辑:

如果必须注入javascript,可以传入一个函数,该函数作为
ExternalInterface.call的第一个参数进行注入:

var inject:String = "function(){var body = document.getElementsByTagName('body')[0], testNode = document.createElement('div'); testNode.innerHTML = 'This is a test'; body.appendChild(testNode);}";
ExternalInterface.call(inject);

但我建议不要这样做。保持语言的独立将导致代码更简洁、更易于调试。

您试图将什么逻辑从flash发送到页面?ExternalInterface提供了一种在javascript和actionscript之间来回通信的方法,但更好的处理方法是使用ExternalInterface进行call处理实际javascript操作的javascript函数,而不是直接从flash注入javascript。@MSost您能给我提供一个演示代码吗?我的意思是,当我将flash横幅加载到我的网页时,它运行一个外部js文件来向我的页面主体添加一个div!效果很好@Msot!我还有一个wuestion请问..如何在AS3内部运行javascript代码?我的意思是,是否可以在不加载外部文件的情况下将div附加到我的文件?@IreneT。您可以将AS3字符串中定义的javascript函数作为第一个参数传递给ExternalInterface.call(“function(){var newDiv=document.createElement('div');document.appendChild(newDiv))我相信,通过这种方式,您可以使用AS3@shaunhusain如果它能工作,我只想给这个divAh一个id名,这就是编写构建DOM的代码的乐趣。在使用newDiv.setAttribute(“id”,“mycustomid”)创建newDiv后,这个页面应该可以帮助您在newDiv上设置属性;基本上在这一点上,这只是一个javascript的练习。祝你好运,黑客入侵愉快。