7.Event 事件:捕獲,定位,冒泡
鍵盤事件:
private function trapKeys(event:KeyboardEvent):void{
Alert.show("charCode:"+String(event.charCode)+" | keyCode:"+String(event.keyCode));
Alert.show(event.currentTarget.name);
}
<mx:TextArea id="text_area" name="mytest" keyDown="trapKeys(event)"/>
8.Flex 可視化組件
Flex中所有可視化組件都繼承自UIComponent,當自定義組件時,應該擴展該類,該基類包括寬度,高度,雙擊事件,id屬性,樣式及x ,y
9.組件事件處理示例:
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.controls.List;
private function handleChageEvent(event:Event):void
{
Alert.show("you select the name:"+List(event.currentTarget).selectedItem.label);
}
]]>
</mx:Script>
<mx:List change="handleChageEvent(event)">
<mx:dataProvider>
<mx:Array>
<mx:Object label="zhang san"/>
<mx:Object label="li si"/>
<mx:Object label="wang wu"/>
</mx:Array>
</mx:dataProvider>
</mx:List>
10.組件行為:
行為:觸發器也效果的結合
<mx:Fade id="fadeInstance" alphaFrom="0" alphaTo="1" duration="1000"/>
<mx:Button label="Fade Button" creationCompleteEffect="{fadeInstance}"/>
11.為了使用組件的x和y屬性,子組件的父容器必須使用絕對定位,,默認情況下,Canvas容器使用絕對定位,但對于Application,Box,Panel容器,必須將layout設置為absolute
12.集合定義的方法:
<mx:ArrayCollection id="myArrayCollection">
<mx:source>
<mx:Array>
<mx:String>United states</mx:String>
<mx:String>South Africa</mx:String>
<mx:String>United kingdom</mx:String>
</mx:Array>
</mx:source>
</mx:ArrayCollection>
或著
import mx.collections.ArrayCollection;
[Bindable]
public var myCollection:ArrayCollection = new ArrayCollection(["United states","South Africa","United kingdom"]);
或著
public var myCollection:arrayCollection = new ArrayCollection();
var myArray:Array = ["United states","South Africa","United kingdom"];
myColleaction.source = myArray;
13.集合的接口
IList:以順序方式組織項的集合,不支持排序過慮或指針
適合于在集合的特定索引獲取、設置、添加、刪除項
在集合末尾添加一項
獲取集合中項的索引
獲取集合中項的總數
獲取集合中所有的項
IcollectionView:基于數據集合的視圖,支持排序過慮,而不修改底層數據,為了訪問項,此接口提供對IViewCursor對象的訪問
適合于通過修改視圖來排序數據,或過濾顯示項的子集,而不修改底層數據
移動集合中的項,并使用書簽保存項在集合中的位置
顯示最初可能不用的遠程數據,或顯示器顯示不同時間的不同數據
IviewCursor:實現對于集合視圖的雙向枚舉,指針提供了定位搜索和設置標簽功能
var myArrayCollection:ICollectionView = new ArrayCollection([ "Bobby", "Mark", "Trevor", "Jacey", "Tyler" ]);
var cursor:IViewCursor = myArrayCollection.createCursor();
cursor.seek(CursorBookmark.last);
while (!cursor.beforeFirst)
{
trace(current);
cursor.movePrevious();
}
ArrayCollection 和XMLListCollection 類都城實現了IList 和ICollectionView接口
public function sortCollection():void
{
var sort:Sort = new Sort();
sort.fields = [new SortField("label", true, true)];
myCollection.sort = sort;
myCollection.refresh();
}
public function filterCollection():void
{
myCollection.filterFunction = stateFilterFunc;
myCollection.refresh();
}
private function stateFilterFunc(item:Object):Boolean
{
return item.label >= "A" && item.label < "N";
}
private function resetCollection():void
{
myCollection.filterFunction = null;
myCollection.sort = null;
myCollection.refresh();
}
]]>
</mx:Script>
<mx:ArrayCollection id="myCollection">
<mx:Array>
<mx:Object label="LA" data="Baton Rouge" />
<mx:Object label="NH" data="Concord" />
<mx:Object label="TX" data="Austin" />
<mx:Object label="MA" data="Boston" />
<mx:Object label="AZ" data="Phoenix" />
</mx:Array>
</mx:ArrayCollection>
<mx:List dataProvider="{myCollection}" width="200" />
<mx:Button label="Sort Collection" click="sortCollection()" />
<mx:Button label="Filter Collection" click="filterCollection()" />
<mx:Button label="Reset Collection" click="resetCollection()" />
14.集合變化引發事件
IList ICollectionView接口實現類的集合發生變化時,都會分派CollectionEvent類事件
<mx:Script>
<![CDATA[
import mx.events.CollectionEventKind;
import mx.events.CollectionEvent;
import mx.collections.SortField;
import mx.collections.Sort;
import mx.collections.ArrayCollection;
private var index:Number = 0;
public function collectionChange(event:CollectionEvent):void
{
switch (event.kind)
{
case CollectionEventKind.ADD:
myTextArea.text += "Item Added\n";
break;
case CollectionEventKind.REPLACE:
myTextArea.text += "Item Replaced\n";
break;
case CollectionEventKind.REMOVE:
myTextArea.text += "Item Removed\n";
break;
}
}
public function addItem():void
{
myCollection.addItem({label: myTextInput.text, data: index});
index++;
}
private function updateItem():void
{
if (myList.selectedItem != null)
myCollection.setItemAt({label: myTextInput.text, data: index}, myList.selectedIndex);
}
private function removeItem():void
{
if (myList.selectedItem != null)
myCollection.removeItemAt(myList.selectedIndex);
}
]]>
</mx:Script>
<mx:ArrayCollection id="myCollection" collectionChange="collectionChange(event)" />
<mx:TextInput id="myTextInput" />
<mx:List id="myList" dataProvider="{myCollection}" width="200" height="200" />
<mx:Button label="ADD" click="addItem()" />
<mx:Button label="UPDATE" click="updateItem()" />
<mx:Button label="REMOVE" click="removeItem()" />
<mx:TextArea id="myTextArea" width="200" height="200" />
posted on 2011-01-18 09:38
長春語林科技 閱讀(263)
評論(0) 編輯 收藏 所屬分類:
flex