| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
La clase DataProvider proporciona métodos y propiedades para realizar consultas y modificar los datos de cualquier componente basado en listas como, por ejemplo, de un componente List, DataGrid, TileList o ComboBox.
Un proveedor de datos es una colección lineal de elementos que sirve como origen de datos como, por ejemplo, una matriz. Cada elemento de un proveedor de datos es un objeto u objeto XML que contiene uno o varios campos de datos. Puede acceder a los elementos que contiene un proveedor de datos a través del índice, usando el método DataProvider.getItemAt().
Ver los ejemplos
length:uint [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Número de elementos contenidos en el proveedor de datos.
Implementación
public function get length():uint
Ejemplo
En el ejemplo siguiente, se crea una instancia del componente List y se cambia el tamaño de la lista para que coincida con el número de elementos de su proveedor de datos:
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)
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Crea un nuevo objeto DataProvider utilizando una lista, una instancia XML o una matriz de objetos de datos como origen de datos.
Parámetros
| value:Object (default = null) — Datos utilizados para crear DataProvider.
|
Ejemplo
En el ejemplo siguiente, se crea un nuevo proveedor de datos con el método
addItem():
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);
En el ejemplo siguiente, se llena un proveedor de datos con un objeto Array:
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);
En el ejemplo siguiente, se llena un proveedor de datos con un objeto XML con atributos:
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);
En el ejemplo siguiente, se llena un proveedor de datos con un objeto XML con nodos secundarios:
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
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Añade un elemento al final del proveedor de datos.
Parámetros
| item:Object — Elemento que se añadirá al final del proveedor de datos actual.
|
Véase también
Ejemplo
En el ejemplo siguiente, se crea un nuevo proveedor de datos con el método
addItem():
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
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Añade un nuevo elemento al proveedor de datos en el índice especificado. El índice que se ha especificado se omitirá si supera la longitud del proveedor de datos.
Parámetros
| item:Object — Objeto que contiene los datos para el elemento que se va a añadir.
|
| |
| index:uint — Índice en el que se va a añadir el elemento.
|
Emite
| RangeError — El índice especificado es inferior a 0 o es mayor o igual que la longitud del proveedor de datos.
|
Véase también
public function addItems(items:Object):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Añade varios elementos al final de DataProvider y distribuye un evento DataChangeType.ADD. Los elementos se añaden en el orden en que se especifican.
Parámetros
| items:Object — Elementos que se van a añadir al proveedor de datos.
|
Véase también
Ejemplo
En el ejemplo siguiente, se utiliza el método
addItems() para añadir varios elementos al proveedor de datos:
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
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Añade varios elementos al proveedor de datos en el índice especificado y distribuye un evento DataChangeType.ADD.
Parámetros
| items:Object — Elementos que se van a añadir al proveedor de datos.
|
| |
| index:uint — Índice en el que se van a insertar los elementos.
|
Emite
| RangeError — El índice especificado es inferior a 0 o es mayor o igual que la longitud del proveedor de datos.
|
Véase también
public function clone():DataProvider
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Crea una copia del objeto DataProvider actual.
Valor devuelto
public function concat(items:Object):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Concatena los elementos especificados al final del proveedor de datos actual. Este método distribuye un evento DataChangeType.ADD.
Parámetros
| items:Object — Elementos que se van a añadir al proveedor de datos.
|
Véase también
public function getItemAt(index:uint):Object
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Devuelve el elemento del índice especificado.
Parámetros
| index:uint — Ubicación del elemento que se va a devolver.
|
Valor devuelto
| Object — Elemento en el índice especificado.
|
Emite
| RangeError — El índice especificado es inferior a 0 o es mayor o igual que la longitud del proveedor de datos.
|
Véase también
public function getItemIndex(item:Object):int
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Devuelve el índice del elemento especificado.
Parámetros
| item:Object — Elemento que se va a ubicar.
|
Valor devuelto
| int — Índice del elemento especificado o -1 si no se encuentra el elemento.
|
Véase también
public function invalidate():void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Invalida todos los elementos de datos que el objeto DataProvider contiene y distribuye un evento DataChangeEvent.INVALIDATE_ALL. Los elementos se invalidan después de que se cambien; DataProvider vuelve a dibujar los elementos invalidados automáticamente.
Véase también
public function invalidateItem(item:Object):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Invalida el elemento especificado. Un elemento se invalida después de que se cambie; DataProvider vuelve a dibujar el elemento invalidado automáticamente.
Parámetros
| item:Object — Elemento que se va a invalidar.
|
Véase también
public function invalidateItemAt(index:int):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Invalida el elemento del índice especificado. Un elemento se invalida después de que se cambie; DataProvider vuelve a dibujar el elemento invalidado automáticamente.
Parámetros
| index:int — Índice del elemento que se va a invalidar.
|
Emite
| RangeError — El índice especificado es inferior a 0 o es mayor o igual que la longitud del proveedor de datos.
|
Véase también
public function merge(newData:Object):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Añade los datos especificados que contiene el proveedor de datos y quita los elementos duplicados. Este método distribuye un evento DataChangeType.ADD.
Parámetros
| newData:Object — Datos que se van a combinar con el proveedor de datos.
|
Véase también
public function removeAll():void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Elimina todos los elementos del proveedor de datos y distribuye un evento DataChangeType.REMOVE_ALL.
Véase también
public function removeItem(item:Object):Object
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Quita el elemento especificado del proveedor de datos y distribuye un evento DataChangeType.REMOVE.
Parámetros
| item:Object — Elemento que se va a quitar.
|
Valor devuelto
| Object — Elemento que se ha eliminado.
|
Véase también
public function removeItemAt(index:uint):Object
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Elimina el elemento en el índice especificado y distribuye un evento DataChangeType.REMOVE.
Parámetros
| index:uint — Índice del elemento que se va a quitar.
|
Valor devuelto
| Object — Elemento que se ha eliminado.
|
Emite
| RangeError — El índice especificado es inferior a 0 o es mayor o igual que la longitud del proveedor de datos.
|
Véase también
public function replaceItem(newItem:Object, oldItem:Object):Object
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Sustituye un elemento existente por un elemento nuevo y distribuye un evento DataChangeType.REPLACE.
Parámetros
| newItem:Object — Elemento que se va a sustituir.
|
| |
| oldItem:Object — Elemento de sustitución.
|
Valor devuelto
| Object — Elemento que se ha sustituido.
|
Emite
| RangeError — El elemento no se ha podido encontrar en el proveedor de datos.
|
Véase también
public function replaceItemAt(newItem:Object, index:uint):Object
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Sustituye el elemento en el índice especificado y distribuye un evento DataChangeType.REPLACE.
Parámetros
| newItem:Object — Elemento de sustitución.
|
| |
| index:uint — Índice del elemento que se va a sustituir.
|
Valor devuelto
| Object — Elemento que se ha sustituido.
|
Emite
| RangeError — El índice especificado es inferior a 0 o es mayor o igual que la longitud del proveedor de datos.
|
Véase también
public function sort(... sortArgs):*
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Ordena los elementos contenidos en el proveedor de datos y distribuye un evento DataChangeType.SORT.
Parámetros
| ... sortArgs — Argumentos que se utilizan para la ordenación.
|
Valor devuelto
| * — El valor de devolución depende de si el método recibe algún argumento. Para más información, consulte el método Array.sort(). Este método devuelve 0 cuando la propiedad sortOption se ha definido en Array.UNIQUESORT.
|
Véase también
public function sortOn(fieldName:Object, options:Object = null):*
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Ordena los elementos contenidos en el proveedor de datos según el campo especificado y distribuye un evento DataChangeType.SORT. El campo especificado puede ser una cadena o una matriz de valores de cadena que designan varios campos para ordenar en orden de precedencia.
Parámetros
| fieldName:Object — Campo de elemento por el que se va a ordenar. Este valor puede ser una cadena o una matriz de valores de cadena.
|
| |
| options:Object (default = null) — Opciones para la ordenación.
|
Valor devuelto
| * — El valor de devolución depende de si el método recibe algún argumento. Para más información, consulte el método Array.sortOn(). Si la propiedad sortOption se ha definido en Array.UNIQUESORT, este método devuelve 0.
|
Véase también
public function toArray():Array
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Crea una representación de objetos Array de los datos contenidos en el proveedor de datos.
Valor devuelto
| Array — Representación de objetos Array de los datos contenidos en el proveedor de datos.
|
public override function toString():String
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Crea una representación de cadena de los datos contenidos en el proveedor de datos.
Valor devuelto
| String — Representación de cadena de los datos contenidos en el proveedor de datos.
|
Tipo de objeto de evento: fl.events.DataChangeEvent
DataChangeEvent.type property = fl.events.DataChangeEvent.DATA_CHANGE
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Se distribuye después de que cambien los datos.
Define el valor de la propiedad
type para un objeto de evento
dataChange.
Este evento tiene las propiedades siguientes:
| Propiedad | Valor |
bubbles | false |
cancelable | false; no hay ningún comportamiento predeterminado que cancelar. |
changeType | Identifica el tipo de cambio realizado. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
endIndex | Identifica el índice del último elemento cambiado. |
items | Matriz que enumera los elementos que se han cambiado. |
startIndex | Identifica el índice del primer elemento cambiado. |
target | Error que distribuyó el evento. El destino no es siempre el objeto que detecta el evento. Utilice la propiedad currentTarget para acceder al objeto que detecta el evento. |
Véase también
Tipo de objeto de evento: fl.events.DataChangeEvent
DataChangeEvent.type property = fl.events.DataChangeEvent.PRE_DATA_CHANGE
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9.0.28.0 |
Se distribuye antes de que cambien los datos.
Define el valor de la propiedad
type para un objeto de evento
preDataChange. Este objeto de evento se distribuye antes de que se realicen cambios a los datos del componente.
Este evento tiene las propiedades siguientes:
| Propiedad | Valor |
bubbles | false |
cancelable | false; no hay ningún comportamiento predeterminado que cancelar. |
changeType | Identifica el tipo de cambio que se va a realizar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
endIndex | Identifica el índice del último elemento que se va a cambiar. |
items | Matriz que enumera los elementos que se van a cambiar. |
startIndex | Identifica el índice del primer elemento que se va a cambiar. |
target | Error que distribuyó el evento. El destino no es siempre el objeto que detecta el evento. Utilice la propiedad currentTarget para acceder al objeto que detecta el evento. |
Véase también
En este ejemplo, se muestra cómo se pueden utilizar los proveedores de datos para mostrar el contenido de varias cuadrículas de datos.
Para realizar el ejemplo, siga estos pasos:
- Añada los componentes Label, Button, ComboBox, TextInput y DataGrid a la biblioteca.
- Guarde este código como DataProviderExample.as en el mismo directorio que el archivo FLA.
- Defina la clase Document como DataProviderExample en el archivo FLA.
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. Todos los derechos reservados.
Fri Oct 12 2007, 2:30 AM GMT-07:00
Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/fl/data/DataProvider.html