如果界面上有一系列ID的相似的组件,可以通过this关键字加上ID的字符串做作下标来定位当前模块或者应用程序中每一个组件的实例,并改变组件的属性、风格、效果或者行为,使得代码更加简洁通用。如下面的代码所示:
<?xml version="1.0"?>
<!-- usingas/FlexComponents.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script><![CDATA[
private var newFontStyle:String;
private var newFontSize:int;
public function changeLabel(s:String):void {
s = "myButton" + s;
if (this[s].getStyle("fontStyle")=="normal") {
newFontStyle = "italic";
newFontSize = 18;
} else {
newFontStyle = "normal";
newFontSize = 10;
}
this[s].setStyle("fontStyle",newFontStyle);
this[s].setStyle("fontSize",newFontSize);
}
]]></mx:Script>
<mx:Button id="myButton1"
click="changeLabel('2')"
label="Change Other Button's Styles"
/>
<mx:Button id="myButton2"
click="changeLabel('1')"
label="Change Other Button's Styles"
/>
</mx:Application>
上面应用程序有两个ID相似的按钮组件,分别是myButton1和myButton2,分别点击自已是会改变对方label的字
型和大小。changeLabel方法接授一个参数就可以为两个按钮提供行为的响应,方法内部通过this[id]的方式获取要改变组件的实例从而完成了用户的动作需求,这样就可以避免写两个方法分别向应两个按钮click事件那么麻烦了。