| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Die DataProvider-Klasse stellt Methoden und Eigenschaften bereit, mit denen Sie die Daten in einer listenbasierten Komponente (beispielsweise List, DataGrid, TileList oder ComboBox) abrufen und ändern können.
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.
Beispiele anzeigen
length:uint [read-only]
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Die Anzahl der Elemente im DataProvider.
Implementierung public function get length():uint Beispiel
Im folgenden Beispiel wird eine Instanz der List-Komponente erstellt und die Listengröße an die Anzahl der Elemente im Datenprovider angepasst:
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);
public function DataProvider(value:Object = null)
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Erstellt ein neues DataProvider-Objekt anhand einer Liste, einer XML-Instanz oder eines Arrays von Datenobjekten als Datenquelle.
Parameter
| value:Object (default = null) — Die zum Erstellen des DataProvider-Objekts verwendeten Daten.
|
Beispiel
Im folgenden Beispiel wird mithilfe der
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);
Im folgenden Beispiel wird ein Datenprovider mit einem Array-Objekt gefüllt:
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);
Im folgenden Beispiel wird ein Datenprovider mit einem XML-Objekt mit Attributen gefüllt:
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);
Im folgenden Beispiel wird ein Datenprovider mit einem XML-Objekt mit untergeordneten Knoten gefüllt:
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);
public function addItem(item:Object):void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Fügt ein Element am Ende des Datenproviders hinzu.
Parameter
| item:Object — Das Element wird am Ende des aktuellen Datenproviders hinzugefügt.
|
Siehe auch
Beispiel
Im folgenden Beispiel wird mithilfe der
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);
public function addItemAt(item:Object, index:uint):void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Siehe auch
public function addItems(items:Object):void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Siehe auch
Beispiel
Im folgenden Beispiel werden mit der
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);
public function addItemsAt(items:Object, index:uint):void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Siehe auch
public function clone():DataProvider
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Erstellt eine Kopie des aktuellen DataProvider-Objekts.
Rückgabewerte
| DataProvider — Eine neue Instanz dieses DataProvider-Objekts.
|
public function concat(items:Object):void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Siehe auch
public function getItemAt(index:uint):Object
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Gibt das Element an der angegebenen Indexposition zurück.
Parameter
| index:uint — Die Position des zurückgegebenen Elements.
|
Rückgabewerte
| 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.
|
Siehe auch
public function getItemIndex(item:Object):int
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Gibt die Indexposition des angegebenen Elements zurück.
Parameter
| item:Object — Das zu suchende Element.
|
Rückgabewerte
| int — Die Indexposition des angegebenen Elements oder -1, wenn das Element nicht gefunden wird.
|
Siehe auch
public function invalidate():void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
Siehe auch
public function invalidateItem(item:Object):void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Siehe auch
public function invalidateItemAt(index:int):void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Siehe auch
public function merge(newData:Object):void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Siehe auch
public function removeAll():void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Entfernt alle Elemente aus dem Datenprovider und löst ein DataChangeType.REMOVE_ALL-Ereignis aus.
Siehe auch
public function removeItem(item:Object):Object
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Entfernt das angegebene Element aus dem Datenprovider und löst ein DataChangeType.REMOVE-Ereignis aus.
Parameter
| item:Object — Das zu entfernende Element.
|
Rückgabewerte
| Object — Das entfernte Element.
|
Siehe auch
public function removeItemAt(index:uint):Object
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Rückgabewerte
| Object — Das entfernte Element.
|
Auslöser
| RangeError — Der angegebene Index ist kleiner als 0 oder größer gleich der Länge des Datenproviders.
|
Siehe auch
public function replaceItem(newItem:Object, oldItem:Object):Object
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Rückgabewerte
| Object — Das ersetzte Element.
|
Auslöser
| RangeError — Das Element wurde im Datenprovider nicht gefunden.
|
Siehe auch
public function replaceItemAt(newItem:Object, index:uint):Object
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Rückgabewerte
| Object — Das ersetzte Element.
|
Auslöser
| RangeError — Der angegebene Index ist kleiner als 0 oder größer gleich der Länge des Datenproviders.
|
Siehe auch
public function sort(... sortArgs):*
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Sortiert die im Datenprovider enthaltenen Elemente und löst ein DataChangeType.SORT-Ereignis aus.
Parameter
| ... sortArgs — Die zum Sortieren verwendeten Argumente.
|
Rückgabewerte
| * — 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.
|
Siehe auch
public function sortOn(fieldName:Object, options:Object = null):*
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.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.
|
Rückgabewerte
| * — 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.
|
Siehe auch
public function toArray():Array
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Stellt die im Datenprovider enthaltenen Daten als Array-Objekt dar.
Rückgabewerte
| Array — Die im Datenprovider enthaltenen Daten als Array-Objekt.
|
public override function toString():String
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Stellt die im Datenprovider enthaltenen Daten als Zeichenfolge dar.
Rückgabewerte
| String — Die im Datenprovider enthaltenen Daten als Zeichenfolge.
|
Ereignisobjekttyp: fl.events.DataChangeEvent DataChangeEvent.type property = fl.events.DataChangeEvent.DATA_CHANGE
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Wird ausgelöst, nachdem die Daten geändert wurden.
Definiert den Wert der Eigenschaft
type 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. |
Siehe auch
Ereignisobjekttyp: fl.events.DataChangeEvent DataChangeEvent.type property = fl.events.DataChangeEvent.PRE_DATA_CHANGE
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9.0.28.0 |
Wird ausgelöst, bevor die Daten geändert werden.
Definiert den Wert der Eigenschaft
type 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. |
Siehe auch
Dieses Beispiel zeigt, wie Datenprovider zum Verwalten von Inhalten in mehreren Datenrastern verwendet werden können.
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);
}
}
}
© 2004-2007 Adobe Systems Incorporated. All rights reserved.
Fri Oct 12 2007, 2:03 AM GMT-07:00
Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/fl/data/DataProvider.html