加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – ActionScript中的绑定如何工作?

发布时间:2020-12-15 02:14:38 所属栏目:百科 来源:网络整理
导读:据我所知,通过在更改var时自动触发的事件来执行绑定到ActionScript中的var.我有几个问题: 如果类没有显式地扩展EventDispatcher会发生什么?编译器中是否存在某种魔法,这本质上使得该类成为EventDispatcher? 如何绑定到静态vars工作?是否将某种隐式静态ad
据我所知,通过在更改var时自动触发的事件来执行绑定到ActionScript中的var.我有几个问题:

>如果类没有显式地扩展EventDispatcher会发生什么?编译器中是否存在某种魔法,这本质上使得该类成为EventDispatcher?
>如何绑定到静态vars工作?是否将某种隐式静态addEventListener()函数添加到类中?
>我注意到你可以把[Bindable]放在static vars上而不??是static函数,为什么呢?

编辑:

感谢Christophe Herreman的光明回答.但是,我从上面的问题中得到了一些跟进.我想知道有没有人可以填补我的空白(我试图对这些问题编号4,5,6,但由于某种原因他们出现了1,2,3)

>我将-keep选项添加到编译器,并查看生成的绑定代码.有人可以解释这段代码如何应用吗?编译器似乎为每个类生成一个名为BindableProperty的类,其中包含getter和setter.这怎么会折叠到我写的班上?该功能看起来像C#中的部分类 – 这是完全是幕后编译器功能,还是我可以使用自己的东西?
> BindableProperty类仍然没有显式实现EventDispatcher,生成的类如何实现事件调度?
>在问题3中,我询问绑定到静态函数,但实际上意味着静态getter和setter函数.这似乎不允许.

解决方法

绑定确实通过事件调度工作.通过将-keep标志添加到编译器设置,可以从生成的Actionscript代码中学到很多东西.

我会尽量回答你的问题.

>编译器将拾取[Bindable]元数据标签,并为您标记为可绑定的每个属性创建一个getter和setter. getter将返回该属性的值.设置器将检查新值是否与原始值不同,并将调度PropertyChange事件(如果有).>与实例属性基本相同,只有现在才创建一个静态的getter和setter.此外,还创建了一个mx.binding.StaticPropertyWatcher来监视静态属性的更改.>当绑定到静态方法时,会得到以下警告:“应用于不是getter或setter的函数时,”[Bindable]需要一个事件名称参数.“这个描述几乎说明了一切.由于您没有为此方法专门触发的“propertyChange”事件,您必须自己调度自定义.那是[Bindable(event =“customEvent”)],然后从你的类的某个地方发送该事件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读