gpt4 book ai didi

javascript - Actionscript 3 内联 Javascript

转载 作者:行者123 更新时间:2023-11-29 22:12:34 25 4
gpt4 key购买 nike

我有这个javascript代码:

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

到目前为止,我的代码运行良好,但我想将此 javascript 代码加载到 AS3 中。

有没有可能实现它?在我的 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 + " }" );

谁能帮我做这个?

最佳答案

这里有一个例子的链接,展示了 ExternalInterface 是如何工作的

https://dl.dropboxusercontent.com/u/15551758/eitest.zip

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

ExtenalInterface.call();

调用已在 swf 所在页面上注册的 javascript 函数。在示例的情况下:

ExternalInterface.call('toJS', 'flash text');

调用 javascript 函数 toJS 并发送一个参数,一个字符串 "flash text"

也支持相反的方向。在 flash 对象上调用函数并传入参数会将它们发送到 flash。您注册 ExternalInterface 回调:

ExternalInterface.addCallback(callback_name, flash_function_to_call);

在例子中,我们在flash中注册了一个回调:

ExternalInterface.addCallback("fromJS", this.fromJS);

从名为 fromJS 的 javascript 中监听事件并调用内部函数 fromJS。例如,我在舞台上添加了一个文本框来可视化来自 javascript 的数据。

如果这能回答您的问题或您是否需要更多解释,请告诉我。

编辑:

如果你必须注入(inject)javascript,你可以传入一个执行注入(inject)的函数作为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);

但我不建议这样做。保持语言分离将使代码更简洁、更容易调试。

关于javascript - Actionscript 3 内联 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17329386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com