套件 | fl.controls |
類別 | public class List |
繼承 | List SelectableList BaseScrollPane UIComponent Sprite DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
實作 | IFocusManagerComponent |
語言版本: | ActionScript 3.0 |
產品版本: | Flash CS3 |
執行階段版本: | Flash Player 9.0.28.0, AIR 1.0 |
List 組件是由項目、列和資料提供者所組成,如下所述:
- 項目:ActionScript 物件,通常包含描述性的
label
屬性,以及會存放與該項目有關之資料的data
屬性。 - 列:用來顯示項目的組件。
- 資料提供者:當做 List 組件所顯示項目之模型的組件。
根據預設,List 組件會使用 CellRenderer 類別來提供顯示清單項目的列。 您可以透過程式設計的方式建立這些列,這通常是透過將 CellRenderer 類別變成子類別的方式完成。 CellRenderer 類別會實作 ICellRenderer 介面,此介面則提供屬性和方法的集合,供 List 組件用來操作這些列,並傳送資料和狀態資訊至每一列以供顯示。 這包括有關資料大小調整及資料選取的資訊。
List 組件會提供一組用來操作資料提供者的方法,例如 addItem()
和 removeItem()
方法。 您可以使用這些以及其他方法,操作任何與 List 組件同在一個影格中的陣列資料,然後將變更廣播到多個檢視。如果 List 組件不是透過外部資料提供者所提供,這些方法便會自動建立資料提供者的實體,並且透過 List.dataProvider
屬性將它公開。 List 組件會使用實作 ICellRenderer 介面的 Sprite 來顯示每一列。 若要指定此輸出器,請使用 List.cellRenderer
屬性。 您也可以建置 Array 實體或從伺服器取得該實體,並且用它當做多重清單、下拉式清單方塊、資料格等的資料模型。
屬性 | 定義自 | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
對此 InteractiveObject 實體目前的輔助功能實作 (AccessibilityImplementation)。 | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
此顯示物件的目前輔助功能選項。 | DisplayObject | ||
allowMultipleSelection : Boolean
會取得 Boolean 值,指出是否可以一次選取多個清單項目。 | SelectableList | ||
alpha : Number
指出所指定物件的 Alpha 透明度值。 | DisplayObject | ||
blendMode : String
來自 BlendMode 類別的值,會指定要使用何種混合模式。 | DisplayObject | ||
blendShader : Shader [唯寫]
設定用來混合前景和背景的著色器。 | DisplayObject | ||
buttonMode : Boolean
可指定此 sprite 的按鈕模式。 | Sprite | ||
cacheAsBitmap : Boolean
如果設定為 true,Flash 執行階段會快取顯示物件的內部點陣圖表示法。 | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
如果為非 null,當 cacheAsBitmap 設定為 true 時,這個 Matrix 物件會定義顯示物件的顯示方法。 | DisplayObject | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
contextMenu : NativeMenu
指定與此物件有關聯的快顯選單。 | InteractiveObject | ||
dataProvider : DataProvider
會取得或設定要檢視之項目清單的資料模型。 | SelectableList | ||
doubleClickEnabled : Boolean
會指定物件是否會收到 doubleClick 事件。 | InteractiveObject | ||
dropTarget : DisplayObject [唯讀]
指定要將 sprite 拖曳至或丟棄至哪個顯示物件上。 | Sprite | ||
enabled : Boolean
會取得或設定值,指出組件是否可以接受使用者互動。 | UIComponent | ||
filters : Array
索引的陣列,其中包含目前和顯示物件相關的每個濾鏡物件。 | DisplayObject | ||
focusEnabled : Boolean
會取得或設定 Boolean 值,指出組件是否可以在使用者按一下之後成為焦點。 | UIComponent | ||
focusManager : IFocusManager
會取得或設定控制此組件及其同輩之焦點的 FocusManager。 | UIComponent | ||
focusRect : Object
會指定這個物件是否會顯示焦點矩形。 | InteractiveObject | ||
graphics : Graphics [唯讀]
指定屬於此 sprite 物件的 Graphics 物件,其中可能會產生向量繪圖命令。 | Sprite | ||
height : Number [覆寫]
會取得或設定組件的高度,以像素為單位。 | UIComponent | ||
hitArea : Sprite
指定用來當作 sprite 作用區域的另一個 sprite。 | Sprite | ||
horizontalLineScrollSize : Number
會取得或設定值,描述當按一下捲動箭頭時,內容要水平捲動的量。 | BaseScrollPane | ||
horizontalPageScrollSize : Number
會取得或設定當按下捲軸軌道時,捲動縮圖在水平捲軸上移動的像素數目。 | BaseScrollPane | ||
horizontalScrollBar : ScrollBar [唯讀]
會取得水平捲軸的參考。 | BaseScrollPane | ||
horizontalScrollPolicy : String
會取得或設定指出水平捲軸狀態的值。 | BaseScrollPane | ||
horizontalScrollPosition : Number
會取得或設定值,描述水平捲軸在捲動窗格中的水平位置,以像素為單位。 | BaseScrollPane | ||
iconField : String
會取得或設定提供項目圖示的項目欄位。 | List | ||
iconFunction : Function
會取得或設定要用來取得項目圖示的函數。 | List | ||
labelField : String
會取得或設定 dataProvider 物件中,要顯示為 TextInput 欄位及下拉式清單之標籤的欄位名稱。 | List | ||
labelFunction : Function
會取得或設定要用來取得項目標籤的函數。 | List | ||
length : uint [唯讀]
會取得資料提供者中的項目數。 | SelectableList | ||
loaderInfo : LoaderInfo [唯讀]
會傳回 LoaderInfo 物件,其中包含關於載入此顯示物件所屬之檔案的資訊。 | DisplayObject | ||
mask : DisplayObject
呼叫之顯示物件會以指定的 mask 物件遮蓋。 | DisplayObject | ||
maxHorizontalScrollPosition : Number [覆寫]
會取得或設定當 horizontalScrollPolicy 屬性設定為 ScrollPolicy.ON 時,清單向右捲動的像素數目。 | SelectableList | ||
maxVerticalScrollPosition : Number [唯讀]
會取得目前內容的最大垂直捲動位置,以像素為單位。 | BaseScrollPane | ||
metaData : Object
如果中繼資料是透過 PlaceObject4 標籤與 SWF 檔案中的這個 DisplayObject 實體一同儲存,則會取得 DisplayObject 實體的中繼資料物件。 | DisplayObject | ||
mouseChildren : Boolean
判斷物件的子系是否支援啟用滑鼠或使用者輸入裝置。 | DisplayObjectContainer | ||
mouseEnabled : Boolean
指定此物件是否接收滑鼠或其他使用者輸入及訊息。 | InteractiveObject | ||
mouseFocusEnabled : Boolean
會取得或設定值,指出組件是否可以在使用者按一下之後成為焦點。 | UIComponent | ||
mouseX : Number [唯讀]
指出滑鼠或使用者輸入裝置位置的 x 座標,以像素為單位。 | DisplayObject | ||
mouseY : Number [唯讀]
指出滑鼠或使用者輸入裝置位置的 y 座標,以像素為單位。 | DisplayObject | ||
name : String
指出 DisplayObject 的實體名稱。 | DisplayObject | ||
needsSoftKeyboard : Boolean
指定虛擬鍵盤 (螢幕上的軟體鍵盤) 是否應在此 InteractiveObject 實體接收到焦點時顯示。 | InteractiveObject | ||
numChildren : int [唯讀]
傳回此物件的子系數量。 | DisplayObjectContainer | ||
opaqueBackground : Object
會指定顯示物件是否不透明,並具有特定背景顏色。 | DisplayObject | ||
parent : DisplayObjectContainer [唯讀]
指出包含此顯示物件的 DisplayObjectContainer 物件。 | DisplayObject | ||
root : DisplayObject [唯讀]
對載入之 SWF 檔案的顯示物件而言,root 屬性就是該 SWF 檔案所呈現之顯示清單樹狀結構部分的最上層顯示物件。 | DisplayObject | ||
rotation : Number
指出 DisplayObject 實體的旋轉度數 (從該物件原本方向算起)。 | DisplayObject | ||
rotationX : Number
表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 x 軸旋轉 (以度數為單位)。 | DisplayObject | ||
rotationY : Number
表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 y 軸旋轉 (以度數為單位)。 | DisplayObject | ||
rotationZ : Number
表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 z 軸旋轉 (以度數為單位)。 | DisplayObject | ||
rowCount : uint [覆寫]
會取得或設定清單中至少可以看見部分的列數。 | List | ||
rowHeight : Number
會取得或設定清單中每一列的高度,以像素為單位。 | List | ||
scale9Grid : Rectangle
目前產生效用的縮放格線。 | DisplayObject | ||
scaleX : Number [覆寫]
會將目前組件的寬度乘以縮放比例係數。 | UIComponent | ||
scaleY : Number [覆寫]
會將目前組件的高度乘以縮放比例係數。 | UIComponent | ||
scaleZ : Number
指出從物件註冊點套用的物件深度縮放 (百分比)。 | DisplayObject | ||
scrollRect : Rectangle
顯示物件的捲動矩形範圍。 | DisplayObject | ||
selectable : Boolean
會取得或設定 Boolean 值,指出是否可以選取清單中的項目。 | SelectableList | ||
selectedIndex : int
會取得或設定在單選清單中選取之項目的索引。 | SelectableList | ||
selectedIndices : Array
會取得或設定包含由複選清單中選取之項目的陣列。 | SelectableList | ||
selectedItem : Object
會取得或設定從單選清單中選取的項目。 | SelectableList | ||
selectedItems : Array
會取得或設定包含物件的陣列,這些物件代表從複選清單中選取的項目。 | SelectableList | ||
softKeyboard : String
控制軟體鍵盤的外觀。 | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
定義顯示軟體鍵盤時,應保留於螢幕上的區域 (iOS 未提供)。 | InteractiveObject | ||
soundTransform : flash.media:SoundTransform
控制此 Sprite 的聲音。 | Sprite | ||
stage : Stage [唯讀]
顯示物件的「舞台」。 | DisplayObject | ||
tabChildren : Boolean
判斷物件的子系是否支援啟用定位鍵。 | DisplayObjectContainer | ||
tabEnabled : Boolean
會指定這個物件是否在停駐點順序中。 | InteractiveObject | ||
tabIndex : int
會指定 SWF 檔中的物件停駐點順序。 | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [唯讀]
傳回此 DisplayObjectContainer 實體的 TextSnapshot 物件。 | DisplayObjectContainer | ||
transform : flash.geom:Transform
這是一個物件,具有和顯示物件的矩陣、顏色轉換和像素邊界有關的屬性。 | DisplayObject | ||
useBitmapScrolling : Boolean
設定為 true 時,捲動內容的 cacheAsBitmap 屬性會設定為 true;設定為 false 時,則會關閉這個值。 | BaseScrollPane | ||
useHandCursor : Boolean
指示當指標滑入 Sprite,且其 buttonMode 屬性設為 true 時,是否要出現指示手掌 (手掌游標) 的 Boolean 值。 | Sprite | ||
verticalLineScrollSize : Number
會取得或設定值,描述當按一下捲動箭頭時,要垂直捲動多少像素。 | BaseScrollPane | ||
verticalPageScrollSize : Number
會取得或設定當按下捲軸軌道時,捲動縮圖在垂直捲軸上移動的像素數目。 | BaseScrollPane | ||
verticalScrollBar : ScrollBar [唯讀]
會取得垂直捲軸的參考。 | BaseScrollPane | ||
verticalScrollPolicy : String
會取得或設定指出垂直捲軸狀態的值。 | BaseScrollPane | ||
verticalScrollPosition : Number
會取得或設定值,描述垂直捲軸在捲動窗格中的垂直位置,以像素為單位。 | BaseScrollPane | ||
visible : Boolean [覆寫]
會取得或設定值,指出目前組件實體是否為可見。 | UIComponent | ||
width : Number [覆寫]
會取得或設定組件的寬度,以像素為單位。 | UIComponent | ||
x : Number [覆寫]
會取得或設定 x 座標,代表組件在其父輩容器內的 x 軸位置。 | UIComponent | ||
y : Number [覆寫]
會取得或設定 y 座標,代表組件在其父輩容器內的 y 軸位置。 | UIComponent | ||
z : Number
表示 DisplayObject 實體相對於 3D 父輩容器的 z 座標位置 (沿著 z 軸)。 | DisplayObject |
方法 | 定義自 | ||
---|---|---|---|
List()
建立新的 List 組件實體。 | List | ||
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。 | DisplayObjectContainer | ||
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。 | DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | EventDispatcher | ||
將某一項目附加至項目清單的結尾。 | SelectableList | ||
會將項目插入清單的指定索引位置。 | SelectableList | ||
指出安全性限制是否會造成傳回的清單 (可用指定的 point 點呼叫 DisplayObjectContainer.getObjectsUnderPoint() 方法來取得) 省略任何顯示物件。 | DisplayObjectContainer | ||
會清除清單中的輸出器所設定的樣式。 | SelectableList | ||
會清除清單內目前選取的項目,並將 selectedIndex 屬性設定為 -1。 | SelectableList | ||
從此組件實體刪除某種樣式屬性。 | UIComponent | ||
判斷指定的顯示物件是否為 DisplayObjectContainer 實體的子系,或為實體本身。 | DisplayObjectContainer | ||
會將事件傳送到事件流程。 | EventDispatcher | ||
會顯示或隱藏此組件上的焦點指示器。 | UIComponent | ||
會起始立即繪製作業,而不需像 invalidateNow 一樣使所有項目無效化。 | UIComponent | ||
傳回可定義顯示物件區域 (相對於 targetCoordinateSpace 物件的座標系統) 的矩形。 | DisplayObject | ||
傳回存在於指定索引位置的子顯示物件實體。 | DisplayObjectContainer | ||
傳回具有指定名稱的子顯示物件。 | DisplayObjectContainer | ||
傳回 child DisplayObject 實體的索引位置。 | DisplayObjectContainer | ||
會擷取目前成為焦點的物件。 | UIComponent | ||
會擷取位於指定索引的項目。 | SelectableList | ||
傳回 dataProvider 中標籤的第一個字元符合指定字串字元的下一個項目的索引。 | SelectableList | ||
傳回位於指定點底下,且屬於此 DisplayObjectContainer 實體之子系 (或孫系,以下類推) 的物件陣列。 | DisplayObjectContainer | ||
根據 targetCoordinateSpace 參數所定義的座標系統,並排除形狀上的任何筆畫,傳回可定義顯示物件邊界的矩形。 | DisplayObject | ||
會擷取清單中的輸出器所設定的樣式。 | SelectableList | ||
會擷取在組件樣式查閱鏈中設定的樣式屬性。 | UIComponent | ||
[靜態]
會擷取目前組件的預設樣式對應。 | List | ||
將 point 物件從「舞台」(全域) 座標轉換成顯示物件的 (區域) 座標。 | DisplayObject | ||
將二維點從「舞台」(全域) 座標轉換為三維顯示物件的 (區域) 座標。 | DisplayObject | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | EventDispatcher | ||
指出物件是否有已定義的指定屬性。 | Object | ||
評估顯示物件的範圍框,看它是否與 obj 顯示物件的範圍框重疊或相交。 | DisplayObject | ||
評估顯示物件,看它是否與 x 和 y 參數所指定的點重疊或相交。 | DisplayObject | ||
會將屬性標示為無效,除非另有指定,否則會在下一個影格上重繪組件。 | UIComponent | ||
使特定的項目輸出器無效化。 | SelectableList | ||
使位於指定索引位置的項目輸出器無效化。 | SelectableList | ||
會使整份清單無效化,並強制重繪清單項目。 | SelectableList | ||
會檢查是否已選取清單中的指定項目。 | SelectableList | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
會擷取指定項目物件的 ICellRenderer (如果有的話)。 | SelectableList | ||
[覆寫]
會擷取字串,輸出器會根據 labelField 和 labelFunction 屬性所指定的資料物件顯示此字串。 | List | ||
將三維顯示物件的 (區域) 座標的三維點轉換為「舞台」(全域) 座標中的二維點。 | DisplayObject | ||
將 point 物件從顯示物件的 (區域) 座標轉換成「舞台」(全域) 座標。 | DisplayObject | ||
[靜態]
會將多種類別中的樣式合併為一個物件。 | UIComponent | ||
將組件移至其父輩內指定的位置。 | UIComponent | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
從清單移除所有項目。 | SelectableList | ||
將指定的 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。 | DisplayObjectContainer | ||
從 DisplayObjectContainer 子清單中的指定索引位置移除子 DisplayObject。 | DisplayObjectContainer | ||
將所有 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。 | DisplayObjectContainer | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
會移除清單中的指定項目。 | SelectableList | ||
移除位於指定索引位置的項目。 | SelectableList | ||
會以另一個項目取代位於指定索引位置的項目。 | SelectableList | ||
升起顯示虛擬鍵盤。 | InteractiveObject | ||
[覆寫]
會將清單捲動到位於指定索引的項目。 | List | ||
會將清單捲動到 selectedIndex 屬性目前值所示位置的項目。 | SelectableList | ||
變更顯示物件容器中現有子系的位置。 | DisplayObjectContainer | ||
將焦點設定到此組件。 | UIComponent | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
會針對清單中的輸出器設定樣式。 | SelectableList | ||
會將組件設定為指定的寬度和高度。 | UIComponent | ||
針對此組件實體設定樣式屬性。 | UIComponent | ||
會排序目前資料提供者的元素。 | SelectableList | ||
會依據目前資料提供者的一個或多個欄位,排序此資料提供者的元素。 | SelectableList | ||
讓使用者拖曳指定的 sprite。 | Sprite | ||
讓使用者將指定的 Sprite 拖曳至觸控裝置上。 | Sprite | ||
遞迴停止執行所有 MovieClips 的時間軸根源於此物件。 | DisplayObjectContainer | ||
結束 startDrag() 方法。 | Sprite | ||
結束觸控裝置使用的 startTouchDrag() 方法。 | Sprite | ||
替換兩個指定子物件的 z 順序 (深度階層,由前至後順序)。 | DisplayObjectContainer | ||
在子清單的兩個指定索引位置,替換子物件的 z 順序 (深度階層,由前至後順序)。 | DisplayObjectContainer | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會確認此物件之屬性和版面的有效性並加以更新,並在必要時重繪此物件。 | UIComponent | ||
會傳回指定之物件的基本值。 | Object | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | EventDispatcher |
iconField | 屬性 |
iconField:String
語言版本: | ActionScript 3.0 |
產品版本: | Flash CS3 |
執行階段版本: | Flash Player 9.0.28.0, AIR 1.0 |
會取得或設定提供項目圖示的項目欄位。
注意:如果將 iconFunction
屬性設定為回呼函數,就不會使用 iconField
。
預設值為 "icon"。
實作
public function get iconField():String
public function set iconField(value:String):void
範例 ( 如何使用本範例 )
RedBox
的元件必須位於元件庫中,並在其元件屬性中切換「匯出給 ActionScript 使用」:
import fl.data.DataProvider; import fl.controls.List; var dp:DataProvider = new DataProvider(); dp.addItem( { iconSource:RedBox, label:"Item 1" } ); dp.addItem( { iconSource:RedBox, label:"Item 2" } ); dp.addItem( { iconSource:RedBox, label:"Item 3" } ); var list:List = new List(); list.iconField = "iconSource"; list.dataProvider = dp; addChild(list);
iconFunction | 屬性 |
iconFunction:Function
語言版本: | ActionScript 3.0 |
產品版本: | Flash CS3 |
執行階段版本: | Flash Player 9.0.28.0, AIR 1.0 |
會取得或設定要用來取得項目圖示的函數。
注意:如果將 iconFunction
屬性設定為回呼函數,就不會使用 iconField
。
預設值為 null。
實作
public function get iconFunction():Function
public function set iconFunction(value:Function):void
範例 ( 如何使用本範例 )
iconFunction
屬性,提供圖示給清單中有限數目的項目。 為使此範例正確運作,名為 RedBox
的元件必須位於元件庫中,並在其元件屬性中切換「匯出給 ActionScript 使用」:
import fl.data.DataProvider; import fl.controls.List; var dp:DataProvider = new DataProvider(); dp.addItem( { label:"Item 1" } ); dp.addItem( { label:"Item 2" } ); dp.addItem( { label:"Item 3" } ); var list:List = new List(); list.iconFunction = determineIcon; list.dataProvider = dp; addChild(list); function determineIcon(item:Object):String { if(item.label == "Item 2") { return "RedBox"; } else { return null; } }
labelField | 屬性 |
labelField:String
語言版本: | ActionScript 3.0 |
產品版本: | Flash CS3 |
執行階段版本: | Flash Player 9.0.28.0, AIR 1.0 |
會取得或設定 dataProvider
物件中,要顯示為 TextInput 欄位及下拉式清單之標籤的欄位名稱。
根據預設,該組件會顯示每個 dataProvider
項目的 label
屬性。 如果 dataProvider
項目沒有包含 label
屬性,則可以將 labelField
屬性設定為使用不同的屬性。
注意:如果將 labelFunction
屬性設定為回呼函數,就不會使用 labelField
屬性。
預設值為 "label"。
實作
public function get labelField():String
public function set labelField(value:String):void
相關 API 元素
範例 ( 如何使用本範例 )
abbreviatedLabel
屬性 (而不是包含預設的 label
屬性) 的每個項目:
import fl.data.DataProvider; import fl.controls.List; var dp:DataProvider = new DataProvider(); dp.addItem( { abbreviatedLabel:"NY", label:"New York" } ); dp.addItem( { abbreviatedLabel:"CA", label:"California" } ); dp.addItem( { abbreviatedLabel:"WA", label:"Washington" } ); dp.addItem( { abbreviatedLabel:"CT", label:"Connecticut" } ); dp.addItem( { abbreviatedLabel:"VT", label:"Vermont" } ); var list:List = new List(); list.setSize(40,100); list.labelField = "abbreviatedLabel" list.dataProvider = dp; addChild(list);
labelFunction | 屬性 |
labelFunction:Function
語言版本: | ActionScript 3.0 |
產品版本: | Flash CS3 |
執行階段版本: | Flash Player 9.0.28.0, AIR 1.0 |
會取得或設定要用來取得項目標籤的函數。
根據預設,該組件會顯示 dataProvider
項目的 label
屬性。 但是某些資料集可能沒有 label
欄位,或者可能沒有其值可不經修改即做為標籤使用的欄位。 例如,某個指定的資料集可能會儲存完整的姓名,但卻會將姓氏和名字分別存放在 lastName
和 firstName
欄位中加以維護。 在這種情況下,就可以使用此屬性來設定回呼函數,將 lastName
和 firstName
欄位的值連接成完整的姓名字串以供顯示。
注意:如果將 labelFunction
屬性設定為回呼函數,就不會使用 labelField
屬性。
預設值為 null。
實作
public function get labelFunction():Function
public function set labelFunction(value:Function):void
範例 ( 如何使用本範例 )
labelFunction
屬性設定為函數,此函數會格式化要在每個儲存格中顯示的字串:
import fl.data.DataProvider; import fl.controls.List; var myDataProvider:DataProvider = new DataProvider(); myDataProvider.addItem({name:"User A", price:0.43}); myDataProvider.addItem({name:"User B", price:0.34}); var users:List = new List(); users.dataProvider = myDataProvider; users.labelFunction = myLabelFunction; addChild(users); function myLabelFunction(item:Object):String { return item.name + " ($" + item.price.toFixed(2) + ")"; }
rowCount | 屬性 |
rowCount:uint
[覆寫] 語言版本: | ActionScript 3.0 |
產品版本: | Flash CS3 |
執行階段版本: | Flash Player 9.0.28.0, AIR 1.0 |
會取得或設定清單中至少可以看見部分的列數。
實作
override public function get rowCount():uint
override public function set rowCount(value:uint):void
範例 ( 如何使用本範例 )
rowCount
屬性,決定潛在可見的列數:
import fl.data.DataProvider; import fl.controls.List; var dp:DataProvider = new DataProvider(); var i:uint; for(i=0; i<100; i++) { dp.addItem( { label: "Item " + i } ); } var list:List = new List(); list.setSize(100,300); list.dataProvider = dp; addChild(list); trace(list.rowCount); // 15
rowCount
設定 List 組件大小:
import fl.controls.Slider; import fl.controls.List; import fl.data.DataProvider; import fl.events.SliderEvent; var dp:DataProvider = new DataProvider(); var i:int; for (i=0; i<8; i++) { dp.addItem({label:"Item " + i}); } var mySlider:Slider = new Slider(); mySlider.move(10, 10); mySlider.tickInterval = 1; mySlider.snapInterval = 1; mySlider.minimum = 2; mySlider.maximum = 9; mySlider.liveDragging = true; mySlider.addEventListener(SliderEvent.CHANGE, changeHandler); addChild(mySlider); var myList:List = new List(); myList.dataProvider = dp; myList.move(mySlider.x, mySlider.y + 20); myList.setSize(100, 50); addChild(myList); function changeHandler(event:SliderEvent):void { myList.rowCount = event.value; }
rowHeight | 屬性 |
List | () | 建構函式 |
public function List()
語言版本: | ActionScript 3.0 |
產品版本: | Flash CS3 |
執行階段版本: | Flash Player 9.0.28.0, AIR 1.0 |
建立新的 List 組件實體。
getStyleDefinition | () | 方法 |
public static function getStyleDefinition():Object
語言版本: | ActionScript 3.0 |
產品版本: | Flash CS3 |
執行階段版本: | Flash Player 9.0.28.0, AIR 1.0 |
會擷取目前組件的預設樣式對應。 視組件使用的樣式而定,樣式對應會包含適用於組件的類型。 例如,disabledTextFormat
樣式會包含 null
值或 TextFormat 物件。 您可以使用這些樣式,並針對目前的組件呼叫 setStyle()
。 下列程式碼會覆寫指定組件上預設的 disabledTextFormat
樣式:
componentInstance.setStyle("disabledTextFormat", new TextFormat());
Object — 預設的樣式物件。
|
相關 API 元素
範例 ( 如何使用本範例 )
import fl.controls.*; import fl.containers.*; import fl.controls.listClasses.*; import fl.controls.dataGridClasses.*; import fl.controls.progressBarClasses.*; import fl.core.UIComponent; import fl.data.DataProvider; var dp:DataProvider = new DataProvider(); dp.addItem( { label: "BaseScrollPane", data:BaseScrollPane } ); dp.addItem( { label: "Button", data:Button } ); dp.addItem( { label: "CellRenderer", data:CellRenderer } ); dp.addItem( { label: "CheckBox", data:CheckBox } ); dp.addItem( { label: "ColorPicker", data:ColorPicker } ); dp.addItem( { label: "ComboBox", data:ComboBox } ); dp.addItem( { label: "DataGrid", data:DataGrid } ); dp.addItem( { label: "HeaderRenderer", data:HeaderRenderer } ); dp.addItem( { label: "ImageCell", data:ImageCell } ); dp.addItem( { label: "IndeterminateBar",data:IndeterminateBar } ); dp.addItem( { label: "Label", data:Label } ); dp.addItem( { label: "List", data:List } ); dp.addItem( { label: "NumericStepper", data:NumericStepper } ); dp.addItem( { label: "ProgressBar", data:ProgressBar } ); dp.addItem( { label: "RadioButton", data:RadioButton } ); dp.addItem( { label: "ScrollPane", data:ScrollPane } ); dp.addItem( { label: "Slider", data:Slider } ); dp.addItem( { label: "TextArea", data:TextArea } ); dp.addItem( { label: "TextInput", data:TextInput } ); dp.addItem( { label: "TileList", data:TileList } ); dp.addItem( { label: "UILoader", data:UILoader } ); dp.addItem( { label: "UIComponent", data:UIComponent } ); var cb:ComboBox = new ComboBox(); cb.move(10,10); cb.setSize(300,25); cb.prompt = "Select a component to view its styles"; cb.rowCount = 12; cb.dataProvider = dp; cb.addEventListener(Event.CHANGE, showStyleDefinition); addChild(cb); var dg:DataGrid = new DataGrid(); dg.setSize(425,300); dg.move(10,50); dg.columns = [ new DataGridColumn("StyleName"), new DataGridColumn("DefaultValue") ]; addChild(dg); function showStyleDefinition(e:Event):void { var componentClass:Class = e.target.selectedItem.data as Class; var styles:Object = componentClass["getStyleDefinition"].call(this); trace(styles.toString()); var styleData:DataProvider = new DataProvider(); for(var i:* in styles) { trace(i + " : " + styles[i]); styleData.addItem( { StyleName:i, DefaultValue:styles[i] } ); } styleData.sortOn("StyleName"); dg.dataProvider = styleData; }
itemToLabel | () | 方法 |
override public function itemToLabel(item:Object):String
語言版本: | ActionScript 3.0 |
產品版本: | Flash CS3 |
執行階段版本: | Flash Player 9.0.28.0, AIR 1.0 |
會擷取字串,輸出器會根據 labelField
和 labelFunction
屬性所指定的資料物件顯示此字串。
注意:如果將 labelFunction
屬性設定為回呼函數,就不會使用 labelField
。
參數
item:Object — 要顯示的物件。
|
String — 要根據資料顯示的字串。
|
範例 ( 如何使用本範例 )
import fl.controls.List; import fl.data.DataProvider; import fl.events.ListEvent; var myDataProvider:DataProvider = new DataProvider(); myDataProvider.addItem({label:"Carrot", price:0.43}); myDataProvider.addItem({label:"Tomato", price:0.34}); myDataProvider.addItem({label:"Blueberry", price:0.72}); myDataProvider.addItem({label:"Turnip", price:0.24}); var myList:List = new List(); myList.setSize(300,80); myList.dataProvider = myDataProvider; myList.labelFunction = myLabelFunction; myList.addEventListener(ListEvent.ITEM_ROLL_OVER, announceLabel); addChild(myList); function myLabelFunction(item:Object):String { return item.label + " - Current price: ($" + item.price.toFixed(2) + ")"; } function announceLabel(e:ListEvent):void { var list:List = e.target as List; var item:Object = e.item; trace("Label: " + item.label); trace("Label displayed: " + list.itemToLabel(item)); }
scrollToIndex | () | 方法 |
- 將 List、Button 和 Label 類別加入元件庫。
- 將這個程式碼儲存成 ListExample.as,並與您的 FLA 存放在相同的目錄中。
- 將 FLA 中的 DocumentClass 設定為 ListExample。
package { import flash.display.Sprite public class ListExample extends Sprite { import flash.events.*; import fl.data.DataProvider; import fl.controls.List import fl.controls.Label import fl.controls.Button private var clearButton:Button; private var availableItems:List; private var selectedItemList:List; private var selectedItemsList:List; public function ListExample() { createComponents(); setupComponents(); } private function setupComponents():void { var dp:Array = new Array(); var i:uint; var count:uint = availableItems.rowCount * 2; for (i = 0; i < count; i++) { dp.push({label:"Item " + i}); } availableItems.allowMultipleSelection = true; availableItems.dataProvider = new DataProvider(dp); availableItems.addEventListener(Event.CHANGE, updateLists); clearButton.addEventListener(MouseEvent.CLICK, clearHandler); } private function clearHandler(event:MouseEvent):void { availableItems.clearSelection(); // clear data providers selectedItemList.dataProvider = new DataProvider(); selectedItemsList.dataProvider = new DataProvider(); } private function updateLists(e:Event):void { selectedItemList.dataProvider = availableItems.selectedItem ? new DataProvider([availableItems.selectedItem]) : new DataProvider(); selectedItemsList.dataProvider = new DataProvider(availableItems.selectedItems); } private function createComponents():void { clearButton = new Button(); availableItems = new List(); selectedItemList = new List(); selectedItemsList = new List(); var availableItemsLabel:Label = new Label(); var selectedItemListLabel:Label = new Label(); var selectedItemsListLabel:Label = new Label(); clearButton.move(10,142); availableItems.move(10,32); selectedItemList.move(120,32); selectedItemsList.move(230,32); availableItemsLabel.move(10,10); selectedItemListLabel.move(120,10); selectedItemsListLabel.move(230,10); clearButton.label = "Clear Selection" availableItemsLabel.text = "Available Items"; selectedItemListLabel.text = "Selected Item"; selectedItemsListLabel.text = "All Selected Items"; addChild(clearButton); addChild(availableItems); addChild(selectedItemList); addChild(selectedItemsList); addChild(availableItemsLabel); addChild(selectedItemListLabel); addChild(selectedItemsListLabel); } } }
Tue Jun 12 2018, 03:47 PM Z