一个是在onEnterFrame里边查输入的变化,一个是在onChanged里边。
我要叫他手工的访问变量,因为那样是直接的把对一个和本实例不相关的变量写道了这个实例的事件函数里边。
事件处理函数非常宝贵,所以有多少处理也都要顺序的写在同一个函数里。我没有经验,不知道实际会不会出现很多处理共用一个事件的情况,但是不妨假定这是可能的。
然后,就像上边的粗体,和本实例不相关却写到这个实例的方法,这是很不符合OO思想的,一般叫他紧密的耦合,没有移植性。
所以选择数据绑定技术,XML产生后一直很热门的。
绑定么,多个字段(不好就理解是变量吧)的信息是彼此通信的。就是你变了我也变,我们的数据总是保持某种程度的一致。
在Flash里使用我还是*次,菜了点。多参考帮助吧。要使用数据绑定类,必须有可以被绑定的实例。可以被绑定的实例要包含至少一个EndPoint。所以只能使用UI Component 的TextInput什么的而不是TextField。
拖放了三个到面板,起名为input ,formatOut, normalOut。然后component inspector面板里添加input--->formatOut 和input--->normalOut的绑定,默认的被绑定的字段(这里是属性)就是text,就不改了。
screen.width-333)this.width=screen.width-333" border=0>
添加了绑定后要编辑下绑定的属性(是property不是attribute不要误会),
direction是数据方向选择out就是说当前的是源,数据是由当前的EndPoint决定。个人看法:不管怎样都不要选择in/out 确有必要宁可绑定两次。
bound to 是要绑定的实例,如图
screen.width-333)this.width=screen.width-333" border=0>
然后看看formatter吧,这个简单的例子能显示数据绑定优越的在这了。它允许你选择一个格式化数据的方法,上面说“保持某种程度的一致”而不是严格一致就是因为有这个formatter。
常用的是CustomFormatter,一个继承mx.data.binding.CustomFormatter的类(其实只要有format和unformat方法就行^^|||)然后那个format方法就可以用“记分 文本”的帖子里边super-tomato的addComma了。
数据绑定类对几个TextInput来说是第三方的,灵活性很大,我的格式化方法改了,那几个文本框不用改就可以用。
点这里下载源文件