Gro*_*kys 12 apache-flex air data-binding actionscript-3
据我所知,ActionScript中的var绑定是通过在var更改时自动触发的事件来执行的.我有几个问题:
编辑:
感谢Christophe Herreman的出色回答.但是,我从上面的问题中得到了一些后续内容.我想知道是否有人可以为我填补空白(我试着将这些问题编号为4,5,6,但出于某种原因它们出现了1,2,3!)
我已将-keep选项添加到编译器并查看生成的绑定代码.谁能解释一下如何应用这段代码?编译器似乎为每个类生成一个名为BindableProperty的类,其中包含getter和setter.这怎么折叠到我写的课上?该功能看起来有点像C#中的部分类 - 这是专门的幕后编译器功能,还是我可以自己使用的东西?
BindableProperty类仍然没有显式实现EventDispatcher,生成的类如何实现事件调度?
在问题3中,我询问了绑定到静态函数,但实际上我的意思是静态getter和setter函数.这似乎不被允许.
Chr*_*man 14
绑定确实通过事件调度工作.通过将-keep标志添加到编译器设置,您可以从生成的Actionscript代码中学到很多东西.
我会尽力回答你的问题.
编译器将获取[Bindable]元数据标记,并为您标记为可绑定的每个属性创建一个getter和setter.getter只返回属性的值.setter将检查新值是否与原始值不同,如果有,则将调度PropertyChange事件.
与基本属性相同,现在只创建静态getter和setter.此外,还会创建一个mx.binding.StaticPropertyWatcher来监视静态属性的更改.
绑定到静态方法时,会收到以下警告:"[Bindable]在应用于不是getter或setter的函数时需要一个事件名称参数." 描述几乎说明了一切.由于您没有专门为此方法触发的"propertyChange"事件,因此您必须自行调度自定义事件.那是[Bindable(event ="customEvent")]然后从你班级的某个地方派遣那个事件.
| 归档时间: |
|
| 查看次数: |
5691 次 |
| 最近记录: |