Paket | fl.data |
Klasse | public class DataProvider |
Vererbung | DataProvider EventDispatcher Object |
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Bei einem Datenprovider handelt es sich um eine lineare Sammlung von Elementen, die als Datenquelle dienen, also beispielsweise ein Array. Alle Elemente in einem Datenprovider sind Objekte oder XML-Objekte, die ein oder mehrere Datenfelder enthalten. Sie können auf die Elemente im Datenprovider anhand des Index mithilfe der Methode DataProvider.getItemAt()
zugreifen.
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
length : uint [schreibgeschützt]
Die Anzahl der Elemente im DataProvider. | DataProvider |
Methode | Definiert von | ||
---|---|---|---|
DataProvider(value:Object = null)
Erstellt ein neues DataProvider-Objekt anhand einer Liste, einer XML-Instanz oder eines Arrays von Datenobjekten als Datenquelle. | DataProvider | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. | EventDispatcher | ||
Fügt ein Element am Ende des Datenproviders hinzu. | DataProvider | ||
Fügt dem Datenprovider an der angegebenen Indexposition ein neues Element hinzu. | DataProvider | ||
Hängt am Ende des Datenproviders mehrere Elemente an und löst ein DataChangeType.ADD-Ereignis aus. | DataProvider | ||
Fügt dem Datenprovider an einer angegebenen Indexposition mehrere Elemente hinzu und löst ein DataChangeType.ADD-Ereignis aus. | DataProvider | ||
Erstellt eine Kopie des aktuellen DataProvider-Objekts. | DataProvider | ||
Verkettet die angegebenen Elemente am Ende des aktuellen Datenproviders. | DataProvider | ||
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | ||
Gibt das Element an der angegebenen Indexposition zurück. | DataProvider | ||
Gibt die Indexposition des angegebenen Elements zurück. | DataProvider | ||
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Entwertet alle Datenelemente im DataProvider-Objekt und löst ein DataChangeEvent.INVALIDATE_ALL-Ereignis aus. | DataProvider | ||
Entwertet das angegebene Element. | DataProvider | ||
Entwertet das Element an der angegebenen Indexposition. | DataProvider | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Hängt die angegebenen Daten an die im Datenprovider enthaltenen Daten an und entfernt doppelte Elemente. | DataProvider | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Entfernt alle Elemente aus dem Datenprovider und löst ein DataChangeType.REMOVE_ALL-Ereignis aus. | DataProvider | ||
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | ||
Entfernt das Element aus dem Datenprovider und löst ein DataChangeType.REMOVE-Ereignis aus. | DataProvider | ||
Entfernt das Element an der angegebenen Indexposition und löst ein DataChangeType.REMOVE-Ereignis aus. | DataProvider | ||
Ersetzt ein altes Element durch ein neues Element und löst ein DataChangeType.REPLACE-Ereignis aus. | DataProvider | ||
Ersetzt das Element an der angegebenen Indexposition und löst ein DataChangeType.REPLACE-Ereignis aus. | DataProvider | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Sortiert die im Datenprovider enthaltenen Elemente und löst ein DataChangeType.SORT-Ereignis aus. | DataProvider | ||
Sortiert die im Datenprovider enthaltenen Elemente anhand des angegebenen Felds und löst ein DataChangeType.SORT-Ereignis aus. | DataProvider | ||
Stellt die im Datenprovider enthaltenen Daten als Array-Objekt dar. | DataProvider | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
[override]
Stellt die im Datenprovider enthaltenen Daten als Zeichenfolge dar. | DataProvider | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object | ||
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher |
Ereignis | Übersicht | Definiert von | ||
---|---|---|---|---|
[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird. | EventDispatcher | |||
Wird ausgelöst, nachdem die Daten geändert wurden. | DataProvider | |||
[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird. | EventDispatcher | |||
Wird ausgelöst, bevor die Daten geändert werden. | DataProvider |
length | Eigenschaft |
length:uint
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Die Anzahl der Elemente im DataProvider.
Implementierung
public function get length():uint
Beispiel ( Verwendung dieses Beispiels )
import fl.controls.List; import fl.data.DataProvider; var dp:DataProvider = new DataProvider(); dp.addItem({label:"Item 1"}); dp.addItem({label:"Item 2"}); dp.addItem({label:"Item 3"}); dp.addItem({label:"Item 4"}); var myList:List = new List(); myList.dataProvider = dp; myList.rowHeight = 35; myList.rowCount = dp.length; myList.move(10, 10); addChild(myList);
DataProvider | () | Konstruktor |
public function DataProvider(value:Object = null)
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Erstellt ein neues DataProvider-Objekt anhand einer Liste, einer XML-Instanz oder eines Arrays von Datenobjekten als Datenquelle.
Parametervalue:Object (default = null ) — Die zum Erstellen des DataProvider-Objekts verwendeten Daten.
|
Beispiel ( Verwendung dieses Beispiels )
addItem()
-Methode ein neuer Datenprovider erstellt:
import fl.controls.ComboBox; import fl.data.DataProvider; var dp:DataProvider = new DataProvider(); dp.addItem({label:"item 1a"}); dp.addItem({label:"item 2a"}); var myComboBox:ComboBox = new ComboBox() myComboBox.dataProvider = dp; myComboBox.move(10, 10); addChild(myComboBox);
import fl.controls.ComboBox; import fl.data.DataProvider; var arr:Array = new Array(); arr.push({label:"item 1b"}); arr.push({label:"item 2b"}); var dp:DataProvider = new DataProvider(arr); var myComboBox:ComboBox = new ComboBox() myComboBox.dataProvider = dp; myComboBox.move(10, 10); addChild(myComboBox);
import fl.controls.ComboBox; import fl.data.DataProvider; var xml:XML = <items> <item label="item 1c" /> <item label="item 2c" /> </items>; var dp:DataProvider = new DataProvider(xml); var myComboBox:ComboBox = new ComboBox() myComboBox.dataProvider = dp; myComboBox.move(10, 10); addChild(myComboBox);
import fl.controls.ComboBox; import fl.data.DataProvider; var xml:XML = <items> <item> <label>item 1d</label> </item> <item> <label>item 2d</label> </item> </items>; var dp:DataProvider = new DataProvider(xml); var myComboBox:ComboBox = new ComboBox() myComboBox.dataProvider = dp; myComboBox.move(10, 10); addChild(myComboBox);
addItem | () | Methode |
public function addItem(item:Object):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Fügt ein Element am Ende des Datenproviders hinzu.
Parameter
item:Object — Das Element wird am Ende des aktuellen Datenproviders hinzugefügt.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
addItem()
-Methode ein neuer Datenprovider erstellt:
import fl.controls.ComboBox; import fl.data.DataProvider; var dp:DataProvider = new DataProvider(); dp.addItem({label:"item 1a"}); dp.addItem({label:"item 2a"}); var myComboBox:ComboBox = new ComboBox() myComboBox.dataProvider = dp; myComboBox.move(10, 10); addChild(myComboBox);
addItemAt | () | Methode |
public function addItemAt(item:Object, index:uint):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Fügt dem Datenprovider an der angegebenen Indexposition ein neues Element hinzu. Falls die angegebene Indexposition die Länge des Datenproviders übersteigt, wird die Indexposition ignoriert.
Parameter
item:Object — Ein Objekt, das die Daten des hinzuzufügenden Objekts enthält.
| |
index:uint — Die Indexposition, an der das Element hinzugefügt wird.
|
Auslöser
RangeError — Der angegebene Index ist kleiner als 0 oder größer gleich der Länge des Datenproviders.
|
Verwandte API-Elemente
addItems | () | Methode |
public function addItems(items:Object):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Hängt am Ende des Datenproviders mehrere Elemente an und löst ein DataChangeType.ADD
-Ereignis aus. Die Elemente werden in der angegebenen Reihenfolge hinzugefügt.
Parameter
items:Object — Die Elemente, die an den Datenprovider angehängt werden.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
addItems()
-Methode mehrere Elemente zum Datenprovider hinzugefügt:
import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; var arr:Array = [{col1:"1.A", col2:"1.B"}, {col1:"2.A", col2:"2.B"}] var dp:DataProvider = new DataProvider(); dp.addItems(arr); trace(dp.length); // 2 var c1:DataGridColumn = new DataGridColumn("col1"); var c2:DataGridColumn = new DataGridColumn("col2"); var myDataGrid:DataGrid = new DataGrid(); myDataGrid.addColumn(c1); myDataGrid.addColumn(c2); myDataGrid.dataProvider = dp; myDataGrid.setSize(200, 160); myDataGrid.move(10, 10); addChild(myDataGrid);
addItemsAt | () | Methode |
public function addItemsAt(items:Object, index:uint):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Fügt dem Datenprovider an einer angegebenen Indexposition mehrere Elemente hinzu und löst ein DataChangeType.ADD
-Ereignis aus.
Parameter
items:Object — Die Elemente, die dem Datenprovider hinzugefügt werden.
| |
index:uint — Die Indexposition, an der die Elemente hinzugefügt werden.
|
Auslöser
RangeError — Der angegebene Index ist kleiner als 0 oder größer gleich der Länge des Datenproviders.
|
Verwandte API-Elemente
clone | () | Methode |
public function clone():DataProvider
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Erstellt eine Kopie des aktuellen DataProvider-Objekts.
RückgabewerteDataProvider — Eine neue Instanz dieses DataProvider-Objekts.
|
concat | () | Methode |
public function concat(items:Object):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Verkettet die angegebenen Elemente am Ende des aktuellen Datenproviders. Diese Methode löst ein DataChangeType.SORT
-Ereignis aus.
Parameter
items:Object — Die Elemente, die dem Datenprovider hinzugefügt werden.
|
Verwandte API-Elemente
getItemAt | () | Methode |
public function getItemAt(index:uint):Object
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Gibt das Element an der angegebenen Indexposition zurück.
Parameter
index:uint — Die Position des zurückgegebenen Elements.
|
Object — Das Element an der angegebenen Indexposition.
|
Auslöser
RangeError — Der angegebene Index ist kleiner als 0 oder größer gleich der Länge des Datenproviders.
|
Verwandte API-Elemente
getItemIndex | () | Methode |
public function getItemIndex(item:Object):int
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Gibt die Indexposition des angegebenen Elements zurück.
Parameter
item:Object — Das zu suchende Element.
|
int — Die Indexposition des angegebenen Elements oder -1, wenn das Element nicht gefunden wird.
|
Verwandte API-Elemente
invalidate | () | Methode |
public function invalidate():void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Entwertet alle Datenelemente im DataProvider-Objekt und löst das Ereignis DataChangeEvent.INVALIDATE_ALL
aus. Elemente werden entwertet, nachdem sie geändert wurden. Dabei erstellt der Datenprovider die entwerteten Elemente automatisch neu.
Verwandte API-Elemente
invalidateItem | () | Methode |
public function invalidateItem(item:Object):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Entwertet das angegebene Element. Ein Element wird entwertet, nachdem es geändert wurde. Dabei erstellt der Datenprovider das entwertete Element automatisch neu.
Parameter
item:Object — Das zu entwertende Element.
|
Verwandte API-Elemente
invalidateItemAt | () | Methode |
public function invalidateItemAt(index:int):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Entwertet das Element an der angegebenen Indexposition. Ein Element wird entwertet, nachdem es geändert wurde. Dabei erstellt der Datenprovider das entwertete Element automatisch neu.
Parameter
index:int — Die Indexposition des zu entwertenden Elements.
|
Auslöser
RangeError — Der angegebene Index ist kleiner als 0 oder größer gleich der Länge des Datenproviders.
|
Verwandte API-Elemente
merge | () | Methode |
public function merge(newData:Object):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Hängt die angegebenen Daten an die im Datenprovider enthaltenen Daten an und entfernt doppelte Elemente. Diese Methode löst ein DataChangeType.SORT
-Ereignis aus.
Parameter
newData:Object — Daten, die im Datenprovider zusammengeführt werden.
|
Verwandte API-Elemente
removeAll | () | Methode |
public function removeAll():void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Entfernt alle Elemente aus dem Datenprovider und löst ein DataChangeType.REMOVE_ALL
-Ereignis aus.
Verwandte API-Elemente
removeItem | () | Methode |
public function removeItem(item:Object):Object
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Entfernt das angegebene Element aus dem Datenprovider und löst ein DataChangeType.REMOVE
-Ereignis aus.
Parameter
item:Object — Das zu entfernende Element.
|
Object — Das entfernte Element.
|
Verwandte API-Elemente
removeItemAt | () | Methode |
public function removeItemAt(index:uint):Object
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Entfernt das Element an der angegebenen Indexposition und löst ein DataChangeType.REMOVE
-Ereignis aus.
Parameter
index:uint — Die Indexposition des zu entfernenden Elements.
|
Object — Das entfernte Element.
|
Auslöser
RangeError — Der angegebene Index ist kleiner als 0 oder größer gleich der Länge des Datenproviders.
|
Verwandte API-Elemente
replaceItem | () | Methode |
public function replaceItem(newItem:Object, oldItem:Object):Object
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Ersetzt ein altes Element durch ein neues Element und löst ein DataChangeType.REPLACE
-Ereignis aus.
Parameter
newItem:Object — Das zu ersetzende Element.
| |
oldItem:Object — Das Ersetzungselement.
|
Object — Das ersetzte Element.
|
Auslöser
RangeError — Das Element wurde im Datenprovider nicht gefunden.
|
Verwandte API-Elemente
replaceItemAt | () | Methode |
public function replaceItemAt(newItem:Object, index:uint):Object
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Ersetzt das Element an der angegebenen Stelle und löst ein DataChangeType.REPLACE
-Ereignis aus.
Parameter
newItem:Object — Das Ersetzungselement.
| |
index:uint — Der Index des Elements, das ersetzt werden soll.
|
Object — Das ersetzte Element.
|
Auslöser
RangeError — Der angegebene Index ist kleiner als 0 oder größer gleich der Länge des Datenproviders.
|
Verwandte API-Elemente
sort | () | Methode |
public function sort(... sortArgs):*
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Sortiert die im Datenprovider enthaltenen Elemente und löst ein DataChangeType.SORT
-Ereignis aus.
Parameter
... sortArgs — Die zum Sortieren verwendeten Argumente.
|
* — Der Ausgabewert hängt davon ab, ob die Methode ein Argument erhält. Weitere Informationen finden Sie im Abschnitt zur Methode Array.sort() . Bei dieser Methode wird 0 ausgegeben, wenn für die Eigenschaft sortOption Array.UNIQUESORT festgelegt ist.
|
Verwandte API-Elemente
sortOn | () | Methode |
public function sortOn(fieldName:Object, options:Object = null):*
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Sortiert die im Datenprovider enthaltenen Elemente anhand des angegebenen Felds und löst ein DataChangeType.SORT
-Ereignis aus. Bei dem angegebenen Feld kann es sich um einen String oder einen Array von String-Werten handeln, der mehrere Felder nach Priorität sortiert.
Parameter
fieldName:Object — Das Elementfeld, nach dem sortiert wird. Bei diesem Wert kann es sich um einen String oder einen Array von String-Werten handeln.
| |
options:Object (default = null ) — Die Sortieroptionen.
|
* — Der Ausgabewert hängt davon ab, ob die Methode ein Argument erhält. Weitere Informationen hierzu finden Sie im Abschnitt zur Methode Array.sortOn() . Falls für die Eigenschaft sortOption Array.UNIQUESORT festgelegt ist, wird für diese Methode 0 ausgegeben.
|
Verwandte API-Elemente
toArray | () | Methode |
toString | () | Methode |
dataChange | Ereignis |
fl.events.DataChangeEvent
Eigenschaft DataChangeEvent.type =
fl.events.DataChangeEvent.DATA_CHANGE
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Wird ausgelöst, nachdem die Daten geändert wurden.
Definiert den Wert der Eigenschafttype
eines dataChange
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
changeType | Gibt die Art der vorgenommenen Änderung an. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
endIndex | Gibt die Indexposition des letzten geänderten Elements an. |
items | Ein Array, das die geänderten Elemente enthält. |
startIndex | Gibt die Indexposition des ersten geänderten Elements an. |
target | Das Objekt, von dem das Ereignis ausgelöst wurde. Das Ziel ist nicht immer das Objekt, das auf das Ereignis wartet. Verwenden Sie die Eigenschaft currentTarget , um auf das Objekt zuzugreifen, das auf das Ereignis wartet. |
Verwandte API-Elemente
preDataChange | Ereignis |
fl.events.DataChangeEvent
Eigenschaft DataChangeEvent.type =
fl.events.DataChangeEvent.PRE_DATA_CHANGE
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flash CS3 |
Laufzeitversionen: | Flash Player 9.0.28.0, AIR 1.0 |
Wird ausgelöst, bevor die Daten geändert werden.
Definiert den Wert der Eigenschafttype
eines preDataChange
-Ereignisobjekts. Dieses Ereignisobjekt wird ausgelöst, bevor Änderungen an den Komponentendaten vorgenommen werden.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
changeType | Gibt die Art der vorzunehmenden Änderung an. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
endIndex | Gibt die Indexposition des letzten zu ändernden Elements an. |
items | Ein Array, das die zu ändernden Elemente enthält. |
startIndex | Gibt die Indexposition des ersten zu ändernden Elements an. |
target | Das Objekt, von dem das Ereignis ausgelöst wurde. Das Ziel ist nicht immer das Objekt, das auf das Ereignis wartet. Verwenden Sie die Eigenschaft currentTarget , um auf das Objekt zuzugreifen, das auf das Ereignis wartet. |
Verwandte API-Elemente
Gehen Sie wie folgt vor, um das Beispiel auszuführen:
- Fügen Sie die Label-, Button-, ComboBox-, TextInput- und DataGrid-Komponenten zur Bibliothek hinzu.
- Speichern Sie diesen Code unter DataProviderExample.as im gleichen Verzeichnis wie die FLA-Datei.
- Legen Sie in der FLA-Datei als Dokumentklasse den Wert "DataProviderExample" fest.
package { import fl.controls.Button; import fl.controls.ComboBox; import fl.controls.DataGrid; import fl.controls.Label; import fl.controls.TextInput; import fl.data.DataProvider; import flash.display.Sprite; import flash.events.*; import flash.text.TextFieldAutoSize; public class DataProviderExample extends Sprite { private var southern:DataGrid; private var northern:DataGrid; private var world:DataGrid; private var southernRoster:DataProvider; private var northernRoster:DataProvider; private var leagueCB:ComboBox; private var nameTI:TextInput; private var goalsTI:TextInput; private var submitBtn:Button; public function DataProviderExample() { southernRoster = new DataProvider(); northernRoster = new DataProvider(); createDataGrids(); createUI(); } private function createUI():void { var description:Label = new Label(); description.text = "Enter player's name, goals scored, and hemisphere of origin:"; description.autoSize = TextFieldAutoSize.LEFT; nameTI = new TextInput(); goalsTI = new TextInput(); var submitBtn:Button = new Button(); submitBtn.label = "Submit Player"; submitBtn.addEventListener(MouseEvent.CLICK, submitPlayer); leagueCB = new ComboBox(); leagueCB.addItem( { label:"Northern", data: 0 } ); leagueCB.addItem( { label:"Southern", data: 1 } ); description.move(10,10); nameTI.move(10,40); nameTI.setSize(150,24); goalsTI.move(170,40); goalsTI.setSize(40,24); leagueCB.move(220,40); leagueCB.setSize(120,24); submitBtn.move(350,40); goalsTI.restrict = "0123456789"; addChild(description); addChild(leagueCB); addChild(submitBtn); addChild(nameTI); addChild(goalsTI); } private function submitPlayer(e:MouseEvent):void { if(nameTI.text != "" && goalsTI.text != "") { var targetRoster:DataProvider; if(leagueCB.selectedItem.label == "Southern") { targetRoster = southernRoster; } else { targetRoster = northernRoster; } targetRoster.addItem( { Name: nameTI.text, Goals: goalsTI.text } ); var worldRoster:DataProvider = southernRoster.clone(); worldRoster.merge(northernRoster); worldRoster.sortOn("Goals", Array.NUMERIC | Array.DESCENDING); southernRoster.sortOn("Goals", Array.NUMERIC | Array.DESCENDING); northernRoster.sortOn("Goals", Array.NUMERIC | Array.DESCENDING); world.dataProvider = worldRoster; nameTI.text = ""; goalsTI.text = ""; } } private function createDataGrids():void { southern = new DataGrid(); northern = new DataGrid(); world = new DataGrid(); southern.move(10,100); northern.move(180,100); world.move(350,100); southern.setSize(170, 250); northern.setSize(170, 250); world.setSize(170, 250); southern.columns = northern.columns = world.columns = [ "Name", "Goals" ]; southern.dataProvider = southernRoster; northern.dataProvider = northernRoster; addChild(southern); addChild(northern); addChild(world); var northernLabel:Label = new Label(); northernLabel.autoSize = TextFieldAutoSize.LEFT; northernLabel.text = "Southern Hemisphere"; northernLabel.move(10,75); addChild(northernLabel); var southernLabel:Label = new Label(); southernLabel.autoSize = TextFieldAutoSize.LEFT; southernLabel.text = "Northern Hemisphere"; southernLabel.move(180,75); addChild(southernLabel); var majorLabel:Label = new Label(); majorLabel.autoSize = TextFieldAutoSize.LEFT; majorLabel.text = "World"; majorLabel.move(350,75); addChild(majorLabel); } } }
Tue Jun 12 2018, 10:04 AM Z