Flex组件开发之自定义属性和方法

定义组件,文件为MyComponents/StateComboBoxSetGet.mxml,其代码如下所示:
 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,其代码如下所示:
<? 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 >

总结:
通过set和get关键字可以定义属性。
效果如下所示:

 

 

 

转自:http://www.cnitblog.com/Lalo/archive/2007/12/29/38213.aspx

你可能感兴趣的:(flex组件)