Flex将控件的值传递给函数的3中方式
1.把值直接传递给函数
这种把值传递给独立函数仍不失为一种首选的技术,因为处理数据的逻辑不用知道数据来自何处。这样一来,函数可以被重用,而且即使将来修改实现方式(例如把 RadioButton 换成CheckBox),也不会影响函数。分析函数showMsg就可以了解到这点:
public function showMsg(msg:String):void{
mx.controls.Alert.show(msg);
}
2.像函数传递时间
当调用函数并传递值时,其实是在相应一个导致时间发生的触发操作。每个事件都有一个相伴的事件对象,时间对象(依靠currentTarget属性)包含所有类型的重要信息(如时间的来源),因此可以这样传递值
public function showMsg(anEvent:ItemClickEvent):void{
mx.controls.Alert.show(anEvent.currentTarget.selectedValue);
}
<s:TextInput x="72" y="10" itemClick="showMsg(event)" />
3.直接访问属性
这种方式要求函数必须非常具体的了解所访问的内容。当然这就限制了函数的重用能力。最糟糕的是,当函数访问的属性被修改后,函数代码就会失效。
冲另一方面来看,这是一种非常简便的方法,因为不需要为其传递任何数据
public function showMsg():void{
mx.controls.Alert.show(Spam.selectedValue.toString());
}
1.把值直接传递给函数
这种把值传递给独立函数仍不失为一种首选的技术,因为处理数据的逻辑不用知道数据来自何处。这样一来,函数可以被重用,而且即使将来修改实现方式(例如把 RadioButton 换成CheckBox),也不会影响函数。分析函数showMsg就可以了解到这点:
public function showMsg(msg:String):void{
mx.controls.Alert.show(msg);
}
2.像函数传递时间
当调用函数并传递值时,其实是在相应一个导致时间发生的触发操作。每个事件都有一个相伴的事件对象,时间对象(依靠currentTarget属性)包含所有类型的重要信息(如时间的来源),因此可以这样传递值
public function showMsg(anEvent:ItemClickEvent):void{
mx.controls.Alert.show(anEvent.currentTarget.selectedValue);
}
<s:TextInput x="72" y="10" itemClick="showMsg(event)" />
3.直接访问属性
这种方式要求函数必须非常具体的了解所访问的内容。当然这就限制了函数的重用能力。最糟糕的是,当函数访问的属性被修改后,函数代码就会失效。
冲另一方面来看,这是一种非常简便的方法,因为不需要为其传递任何数据
public function showMsg():void{
mx.controls.Alert.show(Spam.selectedValue.toString());
}
<s:TextInput id='Span' itemClick="showMsg()" />
本文转载自:http://hi.baidu.com/wenke_wang/blog/item/fefb64024998f195d53f7c66.html