1
<?
xml version="1.0" encoding="utf-8"
?>
2 < mx:ComboBox xmlns:mx ="http://www.adobe.com/2006/mxml" >
3 < mx:Script >
4 <![CDATA[
5 // 定义私有变量
6 private var stateArrayShort:Array = ["AK", "AL"];
7 private var stateArrayLong:Array = ["Arkansas", "Alaska"];
8 // 定义一个设置属性的变量
9 private var _shortNames:Boolean = true;
10 // 定义设置属性的方法
11 public function set shortNames(val:Boolean):void
12 {
13 // 根据传入参数,设置dataProvider属性
14 _shortNames = val;
15 if (_shortNames)
16 {
17 this.dataProvider = stateArrayShort;
18 }
19 else
20 {
21 this.dataProvider = stateArrayLong;
22 }
23 }
24 // 定义获取属性的方法
25 public function get shortNames():Boolean
26 {
27 return _shortNames;
28 }
29 ]]>
30 </ mx:Script >
31 </ mx:ComboBox >
32
调用组件,文件为MainPropSetGet.mxml,其代码如下所示:
2 < mx:ComboBox xmlns:mx ="http://www.adobe.com/2006/mxml" >
3 < mx:Script >
4 <![CDATA[
5 // 定义私有变量
6 private var stateArrayShort:Array = ["AK", "AL"];
7 private var stateArrayLong:Array = ["Arkansas", "Alaska"];
8 // 定义一个设置属性的变量
9 private var _shortNames:Boolean = true;
10 // 定义设置属性的方法
11 public function set shortNames(val:Boolean):void
12 {
13 // 根据传入参数,设置dataProvider属性
14 _shortNames = val;
15 if (_shortNames)
16 {
17 this.dataProvider = stateArrayShort;
18 }
19 else
20 {
21 this.dataProvider = stateArrayLong;
22 }
23 }
24 // 定义获取属性的方法
25 public function get shortNames():Boolean
26 {
27 return _shortNames;
28 }
29 ]]>
30 </ mx:Script >
31 </ mx:ComboBox >
32
<?
xml version="1.0" encoding="utf-8"
?>
< mx:Application xmlns:mx ="http://www.adobe.com/2006/mxml"
xmlns:MyComp ="MyComponents.*" >
< MyComp:StateComboBoxSetGet id ="myStateCB" shortNames ="true" />
< mx:Button click ="myStateCB.shortNames=!myStateCB.shortNames;"
label ="更改列表" />
</ mx:Application >
< mx:Application xmlns:mx ="http://www.adobe.com/2006/mxml"
xmlns:MyComp ="MyComponents.*" >
< MyComp:StateComboBoxSetGet id ="myStateCB" shortNames ="true" />
< mx:Button click ="myStateCB.shortNames=!myStateCB.shortNames;"
label ="更改列表" />
</ mx:Application >
总结:
通过set和get关键字可以定义属性。
效果如下所示:
转自:http://www.cnitblog.com/Lalo/archive/2007/12/29/38213.aspx