SWF: ×××××××××××××××
PropertyChangeEvent 类代表对象的一个属性发生更改时传递到事件侦听器的事件对象,并提供有关更改的信息。此事件由集合类使用,并且是集合了解其提供的数据发生更改的
唯一方式。Flex 数据绑定机制也使用此事件。
但是,不是所有自定义类的属性都会监听到PropertyChangeEvent的抛出,这个跟属性的写法有关系!
比如下例中的 User 类的属性, 他们都有不一样的写法:
{
name:String
name1:String //getter && setter 属性
name2:String //getter && setter 方法 (被挖空的,没有中间变量的 getter && setter 属性)
name3:String //绑定事件的 getter && setter 属性 (当某事件抛出时该方法会再执行,类似事件监听器)
name4:String //抛出事件的 getter && setter 属性 (属性改变,抛出事件告诉大家去更新;getter上绑定了该事件)
}
大家看看各种写法的属性,再试试下面的操作,会不会发现一些规律:
×××××××××××××××××××××
结论:
1.对于一搬的属性,可以监听到 PropertyChangeEvent 事件;
2.对于一个"干净的"getter && setter 属性可以按1得出的结论来看待;
3.一个属性的改变由setter负责抛出 "PropertyChangeEvent", getter 负责做这个事件的监听器, 从而更新显示这个属性的值;
4.对于一个绑定了事件的"getter"方法,他听不到自己的"PropertyChangeEvent".(好像是被新的事件绑定覆盖了, 没仔细研究,曾经试过在getter上再绑定一
个"PropertyChangeEvent", 没成功! 有兴趣的朋友可以试试.)
5.虽然这样更新数据显示没有问题, 但是"PropertyChangeEvent"还是不会抛出来! 这会带来一些麻烦:一些类如果通过属性改变时抛出的"PropertyChangeEvent"来做更新操作的
话, 这个属性的改变会检测不到。 如 CollectionEvent 中的 CollectionEventKind.UPDATE.
建议:
如果有1)写法的朋友请改成2), 因为2)的setter自己就会抛出"PropertyChangeEvent"告诉getter要怎么做,
而且1)这样写getter会把它原来的(类似[Bindalbe("PropertyChangeEvent")])事件绑定给覆盖掉的 :)
1)
private var _name4:String = "email4";
[Bindable("change")]
public function get name4():String {
return _name4;
}
public function set name4(val:String):void {
_name4 = val;
dispatchEvent(new Event("change"))
}
2)
private var _name1:String = "name1";
public function get name1():String {
return _name1;
}
public function set name1(val:String):void {
_name1 = val;
}
文章来源: 我要学flash网(www.51xflash.com) 原文地址:http://www.51xflash.com/article/flex/201105/18-13957.html
分享到:
相关推荐
ActionScript 3.0 语言和组件参考概述Adobe Flex 2 语言参考ActionScript 3.0 语言和组件参考是适用于 Flash® Player 应用程序编程接口 (API) 的参考手册。 Adobe Flex 2 语言参考ActionScript 3.0 语言和组件...
此版本包括支持 Adobe AIR 运行时环境的新 ActionScript 类、方法和属性。 在可能的情况下,特定于 AIR 的新项目都以其名称旁的这个小图标作为标志: 本手册提供了 ActionScript 语言中所支持元素的语法和用法信息...
ActionScript语句中文全解
ActionScript 3.0 CookBook 中文翻译 ActionScript 3.0 flash+flex
ActionScript3中文手册
ActionScript3中文教程,详细介绍了用 FLASH CS3开发应用程序。
fla中是与“ActionScript 3视觉编程”部分相关的内容,主要是一些fla文件和xml文件,用于讲解类绑定、组件制作等与视图紧密相关的例子。 Sample.fla用于读者编译本书文档类例子,是一个空Fla文件。 ...
内含actionscript3.0中文教程和ActionScript 3.0中文api
Tweener flash缓动类 最初他是一个ActionScript 2.0版本的引擎,后来被移植到ActionScript 3.0,现在两个版本都有。实际上,Tweener至少部分是基于更早的一款ActionScript 1.0引擎MC Tween开发的,它发布于2003年。...
第5章ActionScript3.0中的String对象 104 5.1创建String对象 104 5.2字符串处理 105 5.2.1字符处理 105 5.2.2字符串比较 107 5.2.3裁割与连接 108 5.2.4查找、匹配与替换 110 5.2.5提取子串 112 5.2.6大小写转换 113...
此版本包括支持 Adobe AIR 运行时环境的新 ActionScript 类、方法和属性。 在可能的情况下,特定于 AIR 的新项目都以其名称旁的这个小图标作为标志: 本手册提供了 ActionScript 语言中所支持元素的语法和用法信息...
flex中actionscript动态调用remoteobject类,很简单的一个例子,后面可以扩充,动态调用java的方法,可在java方法中放个switch,返回不同的结果集
ActionScript3中的JSON编码解码包
内附ActionScript3 的中文api chm格式的。和自学ActionScript的一些PPT,希望对学习ActionScript的朋友有帮助。
大多数MXML标签相当于ActionScript 3.0的类或者类属性。Flex解析MXML标签,并将其编译成一个包含对应ActionScript对象的SWF文件。
ActionScript 是由 Flash Player 中的 ActionScript 虚拟机 (AVM) 来执行的。ActionScript 代码通常被编译器编译成“字节码格式”(一种由计算机编写且能够为计算机所理解的编程 语言) ,如 Adobe Flash CS3 ...
本书在讲解过程中对于ActionScript 3中相对于ActionScript 2 的改动进行了一一指出,并从理论上解释了为何改变及相关的实现。使ActionScript 2 程序员能够快速上手ActionScript 3 ,并对ActionScript 2代码移植有...
Adobe Flash 中的 ActionScript 2
第5章 ActionScript3.0中的String对象 第6章 ActionScript3.0中的Array类型 第7章 ActionScript3.0中的日期和时间 第8章 ActionScript3.0异常处理 第3篇 ActionScript3.0可视化编程 第9章 可视化编程...
ActionScript 3.0 Cookbook中文