| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
DataProvider クラスには、List、DataGrid、TileList、ComboBox コンポーネントなど、任意のリストベースのコンポーネントのデータを調べたり修正したりできるメソッドおよびプロパティがあります。
データプロバイダは、配列など、データソースとして機能する直線的なアイテムのコレクションです。データプロバイダ内の各アイテムは、データのフィールドを含むオブジェクトまたは XML オブジェクトです。DataProvider.getItemAt() メソッドを使用すると、インデックスを指定することによって、データプロバイダに含まれるアイテムにアクセスできます。
例を表示
length:uint [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データプロバイダに含まれているアイテムの数です。
実装
public function get length():uint
例
次の例では、List コンポーネントインスタンスを作成し、データプロバイダに含まれるアイテム数に合わせてリストのサイズを変更します。
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)
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データソースとしてリスト、XML インスタンス、またはデータオブジェクトの配列を使用して、新しい DataProvider オブジェクトを作成します。
パラメータ
| value:Object (default = null) — DataProvider の作成に使用されるデータです。
|
例
次の例では、
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);
次の例では、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);
次の例では、XML オブジェクトを使用してデータプロバイダに属性を設定します。
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);
次の例では、XML オブジェクトを使用してデータプロバイダに子ノードを設定します。
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
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データプロバイダの最後にアイテムを追加します。
パラメータ
| item:Object — 現在のデータプロバイダの最後に追加されるアイテムです。
|
関連項目
例
次の例では、
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
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
新しいアイテムをデータプロバイダの指定のインデックス位置に追加します。指定されたインデックス位置がデータプロバイダの長さを超えていると、そのインデックスは無視されます。
パラメータ
| item:Object — 追加するアイテムのデータを含むオブジェクトです。
|
| |
| index:uint — アイテムが追加されるインデックス位置です。
|
例外
| RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダの長さ以上です。
|
関連項目
public function addItems(items:Object):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
複数のアイテムを DataProvider の末尾に追加し、DataChangeType.ADD イベントを送出します。アイテムは、指定された順序で追加されます。
パラメータ
| items:Object — データプロバイダに追加されるアイテムです。
|
関連項目
例
次の例では、
addItems() メソッドを使用してデータプロバイダに複数のアイテムを追加します。
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
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
いくつかのアイテムをデータプロバイダの指定のインデックス位置に追加し、DataChangeType.ADD イベントを送出します。
パラメータ
| items:Object — データプロバイダに追加されるアイテムです。
|
| |
| index:uint — アイテムが挿入されるインデックス位置です。
|
例外
| RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダの長さ以上です。
|
関連項目
public function clone():DataProvider
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
現在の DataProvider オブジェクトのコピーを作成します。
戻り値
public function concat(items:Object):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
現在のデータプロバイダの最後に、指定されたアイテムを連結します。このメソッドにより、DataChangeType.ADD イベントが送出されます。
パラメータ
| items:Object — データプロバイダに追加されるアイテムです。
|
関連項目
public function getItemAt(index:uint):Object
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
指定のインデックス位置のアイテムを返します。
パラメータ
| index:uint — 返されるアイテムの場所です。
|
戻り値
| Object — 指定されたインデックス位置にあるアイテムです。
|
例外
| RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダの長さ以上です。
|
関連項目
public function getItemIndex(item:Object):int
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
指定されたアイテムのインデックスを返します。
パラメータ
戻り値
| int — 指定されたアイテムのインデックス、または -1 (指定されたアイテムが見つからない場合) です。
|
関連項目
public function invalidate():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
DataProvider に含まれるすべてのデータアイテムを無効化し、DataChangeEvent.INVALIDATE_ALL イベントを送出します。アイテムは変更後に無効化されます。DataProvider は無効化されたアイテムを自動的に再描画します。
関連項目
public function invalidateItem(item:Object):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
指定されたアイテムを無効化します。アイテムは変更後に無効化されます。DataProvider は無効化されたアイテムを自動的に再描画します。
パラメータ
関連項目
public function invalidateItemAt(index:int):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
指定されたインデックス位置にあるアイテムを無効化します。アイテムは変更後に無効化されます。DataProvider は無効化されたアイテムを自動的に再描画します。
パラメータ
| index:int — 無効化されるアイテムのインデックスです。
|
例外
| RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダの長さ以上です。
|
関連項目
public function merge(newData:Object):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データプロバイダに含まれるデータに指定のデータを追加し、重複するアイテムがあれば削除します。このメソッドにより、DataChangeType.ADD イベントが送出されます。
パラメータ
| newData:Object — データプロバイダに結合されるデータです。
|
関連項目
public function removeAll():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データプロバイダからすべてのアイテムを削除し、DataChangeType.REMOVE_ALL イベントを送出します。
関連項目
public function removeItem(item:Object):Object
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データプロバイダから指定されたアイテムを削除し、DataChangeType.REMOVE イベントを送出します。
パラメータ
戻り値
関連項目
public function removeItemAt(index:uint):Object
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
指定されたインデックス位置のアイテムを削除し、DataChangeType.REMOVE イベントを送出します。
パラメータ
| index:uint — 削除されるアイテムのインデックスです。
|
戻り値
例外
| RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダの長さ以上です。
|
関連項目
public function replaceItem(newItem:Object, oldItem:Object):Object
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
既存のアイテムを新しいアイテムに置き換え、DataChangeType.REPLACE イベントを送出します。
パラメータ
戻り値
例外
関連項目
public function replaceItemAt(newItem:Object, index:uint):Object
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
指定されたインデックス位置のアイテムを置き換え、DataChangeType.REPLACE イベントを送出します。
パラメータ
| newItem:Object — 置換するアイテムです。
|
| |
| index:uint — 置換されるアイテムのインデックスです。
|
戻り値
例外
| RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダの長さ以上です。
|
関連項目
public function sort(... sortArgs):*
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データプロバイダに含まれるアイテムを並べ替え、DataChangeType.SORT イベントを送出します。
パラメータ
| ... sortArgs — 並べ替えに使用する引数です。
|
戻り値
| * — 戻り値は、メソッドが引数を受け取るかどうかに応じて変わります。詳細については、Array.sort() メソッドを参照してください。このメソッドは sortOption プロパティが Array.UNIQUESORT に設定されていると 0 を返します。
|
関連項目
public function sortOn(fieldName:Object, options:Object = null):*
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
指定されたフィールドを使用してデータプロバイダに含まれるアイテムを並べ替え、DataChangeType.SORT イベントを送出します。指定されるフィールドは、ストリングでも、優先順位に従って並べ替えに使用されるフィールドを指定するストリング値の配列でもかまいません。
パラメータ
| fieldName:Object — 並べ替えに使用するアイテムフィールドです。この値には、ストリングまたはストリング値の配列を使用できます。
|
| |
| options:Object (default = null) — 並べ替えのオプションです。
|
戻り値
| * — 戻り値は、メソッドが引数を受け取るかどうかに応じて変わります。詳細については、Array.sortOn() メソッドを参照してください。sortOption プロパティが Array.UNIQUESORT に設定されていると、このメソッドは 0 を返します。
|
関連項目
public function toArray():Array
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データプロバイダに含まれるデータの Array オブジェクト表現を作成します。
戻り値
| Array — データプロバイダに含まれるデータの Array オブジェクト表現です。
|
public override function toString():String
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データプロバイダに含まれるデータのストリング表現を作成します。
戻り値
| String — データプロバイダに含まれるデータのストリング表現です。
|
イベントオブジェクトの型: fl.events.DataChangeEvent
DataChangeEvent.type property = fl.events.DataChangeEvent.DATA_CHANGE
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データが変更された後に送出されます。
type プロパティ (
dataChange イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
changeType | 実行された変更の種類を識別します。 |
currentTarget | イベントリスナーで event オブジェクトをアクティブに処理しているオブジェクトです。 |
endIndex | 最後に変更されたアイテムのインデックスを識別します。 |
items | 変更されたアイテムをリストする配列。 |
startIndex | 最初に変更されたアイテムのインデックスを識別します。 |
target | イベントを送出したオブジェクトです。ターゲットは、必ずしもイベントを受け取るオブジェクトではありません。イベントを受け取るオブジェクトにアクセスするには、currentTarget プロパティを使用します。 |
関連項目
イベントオブジェクトの型: fl.events.DataChangeEvent
DataChangeEvent.type property = fl.events.DataChangeEvent.PRE_DATA_CHANGE
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9.0.28.0 |
データが変更される前に送出されます。
type プロパティ (
preDataChange イベントオブジェクト) の値を定義します。このイベントオブジェクトは、コンポーネントデータが変更される前に送出されます。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
changeType | 実行される変更の種類を識別します。 |
currentTarget | イベントリスナーで event オブジェクトをアクティブに処理しているオブジェクトです。 |
endIndex | 最後に変更されるアイテムのインデックスを識別します。 |
items | 変更対象のアイテムをリストする配列。 |
startIndex | 最初に変更されるアイテムのインデックスを識別します。 |
target | イベントを送出したオブジェクトです。ターゲットは、必ずしもイベントを受け取るオブジェクトではありません。イベントを受け取るオブジェクトにアクセスするには、currentTarget プロパティを使用します。 |
関連項目
次の例では、データプロバイダを使用して、複数のデータグリッドのコンテンツを維持する方法を示します。
例を実行するには、次の手順に従います。
- ライブラリに Label、Button、ComboBox、TextInput、および DataGrid コンポーネントを追加します。
- このコードを FLA ファイルと同じディレクトリに DataProviderExample.as という名前で保存します。
- FLA ファイル内の Document クラスを DataProviderExample に設定します。
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.
Thu Oct 25 2007, 12:41 AM GMT-07:00
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/fl/data/DataProvider.html