Actionscript 3 actionscript中数据绑定的真正工作原理

Actionscript 3 actionscript中数据绑定的真正工作原理,actionscript-3,apache-flex,Actionscript 3,Apache Flex,我想知道是否有可能在纯actionscript中创建一个数据绑定系统,而不使用mx.binding.utils。 至少我想知道数据绑定代码的开销是多少,以及ChangeWatcher如何确切地知道属性何时被更改。 谢谢大家! 实际上,flex编译器在将MXML/AS3编译成字节码之前,先将其编译成纯AS3。因此,在编译过程的某个阶段,数据绑定实际上是用ActionScript实现的 问题是Flex添加了一些专门用于数据绑定的语法。没有什么可以阻止您在AS3中创建数据绑定系统,但也有一些限制,例如

我想知道是否有可能在纯actionscript中创建一个数据绑定系统,而不使用mx.binding.utils。 至少我想知道数据绑定代码的开销是多少,以及ChangeWatcher如何确切地知道属性何时被更改。
谢谢大家!

实际上,flex编译器在将MXML/AS3编译成字节码之前,先将其编译成纯AS3。因此,在编译过程的某个阶段,数据绑定实际上是用ActionScript实现的


问题是Flex添加了一些专门用于数据绑定的语法。没有什么可以阻止您在AS3中创建数据绑定系统,但也有一些限制,例如您必须以AS3的方式来创建数据绑定系统。

查看Michael Labriola(视频)-幻灯片:

在绑定数据时,有很多工作在幕后进行,但他对数据的工作原理给出了非常好的解释。除非您正在经历添加代码的“编译”阶段,否则创建自动工作的东西有点尴尬


您还可以查看as3 commons byecode项目:该项目可以让您在运行时添加代码

非常感谢您的回答。主要的问题是:数据分类在幕后是如何工作的?我可以做一个参考系统,但这将成为一个天真的双向数据绑定。我可以通过事件进行操作,但如何知道属性是否已更改?我应该在enterframe中检查它吗?在这种情况下,开销听起来太大了。让我知道你的想法谢谢。谢谢,它看起来很可能是使用反射…这就是我认为它会产生二传手和传接手。再次感谢你!