パッケージ | fl.data |
クラス | public class DataProvider |
継承 | DataProvider EventDispatcher Object |
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
データプロバイダーは、配列など、データソースとして機能する直線的なアイテムのコレクションです。データプロバイダー内の各アイテムは、データのフィールドを含むオブジェクトまたは XML オブジェクトです。DataProvider.getItemAt()
メソッドを使用すると、インデックスを指定することによって、データプロバイダーに含まれるアイテムにアクセスできます。
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
length : uint [読み取り専用]
データプロバイダーに含まれているアイテムの数です。 | DataProvider |
メソッド | 定義元 | ||
---|---|---|---|
DataProvider(value:Object = null)
データソースとしてリスト、XML インスタンス、またはデータオブジェクトの配列を使用して、新しい DataProvider オブジェクトを作成します。 | DataProvider | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
データプロバイダーの最後にアイテムを追加します。 | DataProvider | ||
新しいアイテムをデータプロバイダーの指定のインデックス位置に追加します。 | DataProvider | ||
複数のアイテムを DataProvider の末尾に追加し、DataChangeType.ADD イベントを送出します。 | DataProvider | ||
いくつかのアイテムをデータプロバイダーの指定のインデックス位置に追加し、DataChangeType.ADD イベントを送出します。 | DataProvider | ||
現在の DataProvider オブジェクトのコピーを作成します。 | DataProvider | ||
現在のデータプロバイダーの最後に、指定されたアイテムを連結します。 | DataProvider | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
指定のインデックス位置のアイテムを返します。 | DataProvider | ||
指定されたアイテムのインデックスを返します。 | DataProvider | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
DataProvider に含まれるすべてのデータアイテムを無効化し、DataChangeEvent.INVALIDATE_ALL イベントを送出します。 | DataProvider | ||
指定されたアイテムを無効化します。 | DataProvider | ||
指定されたインデックス位置にあるアイテムを無効化します。 | DataProvider | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
データプロバイダーに含まれるデータに指定のデータを追加し、重複するアイテムがあれば削除します。 | DataProvider | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
データプロバイダーからすべてのアイテムを削除し、DataChangeType.REMOVE_ALL イベントを送出します。 | DataProvider | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
データプロバイダーから指定されたアイテムを削除し、DataChangeType.REMOVE イベントを送出します。 | DataProvider | ||
指定されたインデックス位置のアイテムを削除し、DataChangeType.REMOVE イベントを送出します。 | DataProvider | ||
既存のアイテムを新しいアイテムに置き換え、DataChangeType.REPLACE イベントを送出します。 | DataProvider | ||
指定されたインデックス位置のアイテムを置き換え、DataChangeType.REPLACE イベントを送出します。 | DataProvider | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
データプロバイダーに含まれるアイテムを並べ替え、DataChangeType.SORT イベントを送出します。 | DataProvider | ||
指定されたフィールドを使用してデータプロバイダーに含まれるアイテムを並べ替え、DataChangeType.SORT イベントを送出します。 | DataProvider | ||
データプロバイダーに含まれるデータの Array オブジェクト表現を作成します。 | DataProvider | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
[オーバーライド]
データプロバイダーに含まれるデータのストリング表現を作成します。 | DataProvider | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
イベント | 概要 | 定義元 | ||
---|---|---|---|---|
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | |||
データが変更された後に送出されます。 | DataProvider | |||
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | |||
データが変更される前に送出されます。 | DataProvider |
length | プロパティ |
length:uint
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
データプロバイダーに含まれているアイテムの数です。
実装
public function get length():uint
例 ( この例の使用方法 )
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 | () | コンストラクター |
public function DataProvider(value:Object = null)
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.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);
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 | () | メソッド |
public function addItem(item:Object):void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
データプロバイダーの最後にアイテムを追加します。
パラメーター
item:Object — 現在のデータプロバイダーの最後に追加されるアイテムです。
|
関連する API エレメント
例 ( この例の使用方法 )
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);
addItemAt | () | メソッド |
public function addItemAt(item:Object, index:uint):void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
新しいアイテムをデータプロバイダーの指定のインデックス位置に追加します。指定されたインデックス位置がデータプロバイダーの長さを超えていると、そのインデックスは無視されます。
パラメーター
item:Object — 追加するアイテムのデータを含むオブジェクトです。
| |
index:uint — アイテムが追加されるインデックス位置です。
|
例外
RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダーの長さ以上です。
|
関連する API エレメント
addItems | () | メソッド |
public function addItems(items:Object):void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
複数のアイテムを DataProvider の末尾に追加し、DataChangeType.ADD
イベントを送出します。アイテムは、指定された順序で追加されます。
パラメーター
items:Object — データプロバイダーに追加されるアイテムです。
|
関連する API エレメント
例 ( この例の使用方法 )
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);
addItemsAt | () | メソッド |
public function addItemsAt(items:Object, index:uint):void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
いくつかのアイテムをデータプロバイダーの指定のインデックス位置に追加し、DataChangeType.ADD
イベントを送出します。
パラメーター
items:Object — データプロバイダーに追加されるアイテムです。
| |
index:uint — アイテムが挿入されるインデックス位置です。
|
例外
RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダーの長さ以上です。
|
関連する API エレメント
clone | () | メソッド |
public function clone():DataProvider
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
現在の DataProvider オブジェクトのコピーを作成します。
戻り値DataProvider — この DataProvider オブジェクトの新しいインスタンスです。
|
concat | () | メソッド |
getItemAt | () | メソッド |
public function getItemAt(index:uint):Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
指定のインデックス位置のアイテムを返します。
パラメーター
index:uint — 返されるアイテムの場所です。
|
Object — 指定されたインデックス位置にあるアイテムです。
|
例外
RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダーの長さ以上です。
|
関連する API エレメント
getItemIndex | () | メソッド |
invalidate | () | メソッド |
public function invalidate():void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
DataProvider に含まれるすべてのデータアイテムを無効化し、DataChangeEvent.INVALIDATE_ALL
イベントを送出します。アイテムは変更後に無効化されます。DataProvider は無効化されたアイテムを自動的に再描画します。
関連する API エレメント
invalidateItem | () | メソッド |
invalidateItemAt | () | メソッド |
public function invalidateItemAt(index:int):void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
指定されたインデックス位置にあるアイテムを無効化します。アイテムは変更後に無効化されます。DataProvider は無効化されたアイテムを自動的に再描画します。
パラメーター
index:int — 無効化されるアイテムのインデックスです。
|
例外
RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダーの長さ以上です。
|
関連する API エレメント
merge | () | メソッド |
removeAll | () | メソッド |
public function removeAll():void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
データプロバイダーからすべてのアイテムを削除し、DataChangeType.REMOVE_ALL
イベントを送出します。
関連する API エレメント
removeItem | () | メソッド |
removeItemAt | () | メソッド |
public function removeItemAt(index:uint):Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
指定されたインデックス位置のアイテムを削除し、DataChangeType.REMOVE
イベントを送出します。
パラメーター
index:uint — 削除されるアイテムのインデックスです。
|
Object — 削除されたアイテムです。
|
例外
RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダーの長さ以上です。
|
関連する API エレメント
replaceItem | () | メソッド |
public function replaceItem(newItem:Object, oldItem:Object):Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
既存のアイテムを新しいアイテムに置き換え、DataChangeType.REPLACE
イベントを送出します。
パラメーター
newItem:Object — 置換されるアイテムです。
| |
oldItem:Object — 置換するアイテムです。
|
Object — 置き換えられたアイテムです。
|
例外
RangeError — アイテムが、データプロバイダー内に見つかりませんでした。
|
関連する API エレメント
replaceItemAt | () | メソッド |
public function replaceItemAt(newItem:Object, index:uint):Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
指定されたインデックス位置のアイテムを置き換え、DataChangeType.REPLACE
イベントを送出します。
パラメーター
newItem:Object — 置換するアイテムです。
| |
index:uint — 置換されるアイテムのインデックスです。
|
Object — 置き換えられたアイテムです。
|
例外
RangeError — 指定したインデックス位置は 0 未満か、またはデータプロバイダーの長さ以上です。
|
関連する API エレメント
sort | () | メソッド |
public function sort(... sortArgs):*
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
データプロバイダーに含まれるアイテムを並べ替え、DataChangeType.SORT
イベントを送出します。
パラメーター
... sortArgs — 並べ替えに使用する引数です。
|
* — 戻り値は、メソッドが引数を受け取るかどうかに応じて変わります。詳細については、Array.sort() メソッドを参照してください。このメソッドは sortOption プロパティが Array.UNIQUESORT に設定されていると 0 を返します。
|
関連する API エレメント
sortOn | () | メソッド |
public function sortOn(fieldName:Object, options:Object = null):*
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
指定されたフィールドを使用してデータプロバイダーに含まれるアイテムを並べ替え、DataChangeType.SORT
イベントを送出します。指定されるフィールドは、ストリングでも、優先順位に従って並べ替えに使用されるフィールドを指定するストリング値の配列でもかまいません。
パラメーター
fieldName:Object — 並べ替えに使用するアイテムフィールドです。この値には、ストリングまたはストリング値の配列を使用できます。
| |
options:Object (default = null ) — 並べ替えのオプションです。
|
* — 戻り値は、メソッドが引数を受け取るかどうかに応じて変わります。詳細については、Array.sortOn() メソッドを参照してください。sortOption プロパティが Array.UNIQUESORT に設定されていると、このメソッドは 0 を返します。
|
関連する API エレメント
toArray | () | メソッド |
toString | () | メソッド |
dataChange | イベント |
fl.events.DataChangeEvent
プロパティ DataChangeEvent.type =
fl.events.DataChangeEvent.DATA_CHANGE
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
データが変更された後に送出されます。
type
プロパティ(dataChange
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
changeType | 実行された変更の種類を識別します。 |
currentTarget | イベントリスナーで event オブジェクトをアクティブに処理しているオブジェクトです。 |
endIndex | 最後に変更されたアイテムのインデックスを識別します。 |
items | 変更されたアイテムをリストする配列。 |
startIndex | 最初に変更されたアイテムのインデックスを識別します。 |
target | イベントを送出したオブジェクトです。ターゲットは、必ずしもイベントを受け取るオブジェクトではありません。イベントを受け取るオブジェクトにアクセスするには、currentTarget プロパティを使用します。 |
関連する API エレメント
preDataChange | イベント |
fl.events.DataChangeEvent
プロパティ DataChangeEvent.type =
fl.events.DataChangeEvent.PRE_DATA_CHANGE
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
データが変更される前に送出されます。
type
プロパティ(preDataChange
イベントオブジェクト)の値を定義します。このイベントオブジェクトは、コンポーネントデータが変更される前に送出されます。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
changeType | 実行される変更の種類を識別します。 |
currentTarget | イベントリスナーで event オブジェクトをアクティブに処理しているオブジェクトです。 |
endIndex | 最後に変更されるアイテムのインデックスを識別します。 |
items | 変更対象のアイテムをリストする配列。 |
startIndex | 最初に変更されるアイテムのインデックスを識別します。 |
target | イベントを送出したオブジェクトです。ターゲットは、必ずしもイベントを受け取るオブジェクトではありません。イベントを受け取るオブジェクトにアクセスするには、currentTarget プロパティを使用します。 |
関連する API エレメント
例を実行するには、次の手順に従います。
- ライブラリに 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); } } }
Tue Jun 12 2018, 10:34 AM Z