据我了解,绑定到 ActionScript 中的 var 是通过更改 var 时自动触发的事件来执行的。我对此有几个问题:
- 如果类没有显式扩展 EventDispatcher 会发生什么?编译器中是否存在某种魔法,本质上使该类成为 EventDispatcher?
- 绑定到静态变量如何工作?类中是否添加了某种隐式静态 addEventListener() 函数?
- 我注意到您可以将 [Bindable] 放在静态变量上,但不能放在静态函数上,这是为什么呢?
编辑:
感谢 Christophe Herreman 的启发性回答。但是,我从上面的问题中得到了一些后续。我想知道是否有人可以为我填补空白(我试图将这些问题编号为 4、5、6,但由于某种原因它们出现了 1、2、3!)
我在编译器中添加了 -keep 选项并查看了生成的绑定代码。谁能解释如何应用此代码?编译器似乎为每个类生成了一个名为 BindableProperty 的类,其中包含 getter 和 setter。这如何融入我写的课程中?该功能看起来有点像 C# 中的部分类 - 这是专门的幕后编译器功能,还是我可以自己使用的功能?
BindableProperty类依然没有显式实现EventDispatcher,生成的类是如何实现事件调度的呢?
在问题 3 中,我询问了绑定到静态函数的问题,但我实际上是指静态 getter 和 setter 函数。这似乎是不允许的。