调用JS函数从传入的对象在AS3
Calling JS function from passed object in AS3
我想从传递给flash的对象中调用JS函数。
JS代码:
<script>
function initContext() {
flashMovie.setContext(ctx);
}
var ctx = new Object();
ctx.saySomething = function(msg) {
alert(msg);
}
</script>
AS3代码:
if (ExternalInterface.available) {
ExternalInterface.addCallback("setContext", say);
ExternalInterface.call("initContext");
}
所以AS3首先调用JS initContext和JS initContext,然后用一个对象调用setContext。到目前为止,这是可行的。我被困在如何从传递的对象调用saySomething函数:
private function say(context:Object) {
ExternalInterface.call(???);
}
你不能在你传递给ActionScript的实际ctx对象上执行saySomething JavaScript函数,因为ActionScript不能在内部执行JavaScript。
当你在JavaScript和ActionScript之间发送一个对象时,它被序列化/反序列化并从JavaScript对象转换为ActionScript对象,反之亦然,但是saySomething函数/方法不会转换为ActionScript函数。未转换可执行代码。可以转换基本类型,如字符串、数字、布尔值、数组和对象,但不能转换函数。
同样,ctx不会是你在JavaScript中创建的对象的引用,它将是对象的副本(序列化和反序列化)。
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 值对象在某个变量发生更改后发生更改
- JS函数调用从AS3与复杂对象的参数
- 调用JS函数从传入的对象在AS3