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
Javascript ActionScript3中类似JSObject的东西?_Javascript_Actionscript 3 - Fatal编程技术网

Javascript ActionScript3中类似JSObject的东西?

Javascript ActionScript3中类似JSObject的东西?,javascript,actionscript-3,Javascript,Actionscript 3,我想问一下,对于ActionScript3是否有liveconnect等价物。我知道AS3中有ExternalInterface类,但它只支持按名称调用方法。Java和LiveConnect最酷的一点是,您可以执行以下操作 function jsFunc(name) = { this.name = name; this.talk = function(){ alert('hello world my name is ' + this.name); } } javaapple

我想问一下,对于ActionScript3是否有liveconnect等价物。我知道AS3中有ExternalInterface类,但它只支持按名称调用方法。Java和LiveConnect最酷的一点是,您可以执行以下操作

function jsFunc(name) = {
  this.name = name;
  this.talk = function(){
    alert('hello world my name is ' + this.name);
  }
}

javaapplet.function(new jsFunc("bob"));
上面的方法是伪代码,因为我从未测试过它,但我已经看到了它的实际应用。在AS3中,虽然我能够将JavaScript“object”的实例传递到AS中,但它通常会转换为ActionScript对象实例,据我所知,该实例会删除所有函数


我看到了JSInterface的一个实现,但我认为它并没有具体做到这一点。有没有办法让类似OO的javascript与ActionScript3一起工作?

实际上,主要的使用场景是让JS“对象”与Flex SWF应用程序交互。因此,当JS“object”想要说wait for SWF对象中发生的事情时,它会在回调中放入一个“this”

ExternalInterface.call("f = function() { alert('Is this like live connect?'); }");
经过研究,我使用的方法是通过Flex Ajax桥来实现这一点。这可能不是我对问题措辞的直接回答,但它足以满足我的需要

基本上我所做的是通过FABridge,在初始化之后,我会将事件侦听器附加到对象

// JS
FlexApp.addEventListeners('flexDidSomething', this.doSomething().bind(this)); //using mootools;
在Flex中,主要应用程序本身

// AS
dispatchEvent(new CustomCreatedEvent(param1, param2));
在JS函数中,我将访问事件对象的get方法来检索参数

从这个意义上讲,它是紧密耦合的,但它至少能满足我的需要


希望这是有帮助的

实际上,主要的使用场景是让JS“对象”与Flex SWF应用程序交互。因此,当JS“object”想要说wait for SWF对象中发生的事情时,它会在回调中放入一个“this”

经过研究,我使用的方法是通过Flex Ajax桥来实现这一点。这可能不是我对问题措辞的直接回答,但它足以满足我的需要

基本上我所做的是通过FABridge,在初始化之后,我会将事件侦听器附加到对象

// JS
FlexApp.addEventListeners('flexDidSomething', this.doSomething().bind(this)); //using mootools;
在Flex中,主要应用程序本身

// AS
dispatchEvent(new CustomCreatedEvent(param1, param2));
在JS函数中,我将访问事件对象的get方法来检索参数

从这个意义上讲,它是紧密耦合的,但它至少能满足我的需要


希望这是有帮助的

JSInterface正是为这些东西而设计的。

JSInterface正是为这些东西而设计的。

在谷歌代码上试试这个库:

在谷歌代码上尝试此库:

该代码将违反Flash安全沙箱。(错误#2060)哪个版本的Flash Player?只有在嵌入Flash对象时未设置正确的参数时,才会违反该版本。该代码将违反Flash安全沙盒。(错误#2060)什么版本的Flash Player?只有在嵌入Flash对象时未设置正确的参数时,才会违反此规则。您要求的是将一个包含函数的对象从JS传递到Flash。对吗?你要求的是将一个包含函数的对象从JS传递到Flash。是吗?回答,是的。我发现了一个停止播放的bug,并将其归档,然后切换到FABridge(用于酷的init回调),并使用路由器路由回请求。JSInterface的作者说这个bug在最新的point版本中已经修复了。回复,是的。我发现了一个停止播放的bug,并将其归档,然后切换到FABridge(用于酷的init回调),并使用路由器路由回请求。JSInterface的作者说这个bug在最新的point版本中已经修复。