2009-05-16 2 views
1

これはそうです。私はXMLデータを取得しています。パースされるまで待つ必要があり、パースが自分のライブラリから行われるとイベントを送出します。flexまたはamfphpのVOとは何ですか?

まず、この場合、ライブラリ内のイベントを回避する方法はありますか?

代わりに、私はVOを使用することを見ました。それでは、これは何ですか?また、これを動作させる方法です。

答えて

0

XMLデータをFlexから取得している場合は、使用していると推測しています.HTMLServiceにxmlを取得しているため、ResultEventのresultプロパティのデータにアクセスします。

private function resultHandler(e:ResultEvent):void{} 

あなたのデータを得るでしょう:

private function resultHandler(e:ResultEvent):void{ 
    var tempCollection:ArrayCollection = new ArrayCollection(); 
    tempCollection = e.result.someDataObject as ArrayCollection; 
} 

、これはあなたがあなたのアイデアは単純ですVOの

private function resultHandler(e:ResultEvent):void{ 
    var tempCollection:ArrayCollection = new ArrayCollection(); 
    tempCollection = e.result.someDataNode as ArrayCollection; 
for each(var item:Object in tempCollection){ 
    var myVO:VO = new Image(); 
    myVO.firstProperty = item.firstProperty; 
    myVO.secondProperty = item.secondProperty; 
    myVOCollection.addItem(myVO); 
} 
} 

にXMLから取得したデータを設定します場所だろう... VOはカスタムオブジェクトです。作成するクラスはObjectを拡張し、外部データソースから値を格納する目的を持っています(例:xml結果)。動的クラスを使用するよりも速いカスタムクラスを使用しているため、コードを読み込んでデバッグするときに多くの助けになります(データ型のチェックなどがあります)。など、ギャラリーのように

私はsomeDataNodeを想定した例で

あなたのxml内のノードがあると、myVOCollection、ArrayCollectionのデータ用とを店舗内の商品、写真:

彼らは何もすることができます。

そうのようなあなたが何かも、この場合のVO:あなたのモデルクラスは、おそらくデータの読み込みと解析を管理するでしょう、そしてそれが終わったら、それはアプリケーションが知っているようにイベントを送出します

package{ 
class VO{ 

private var _firstProperty:String; 
private var _secondProperty:String; 

public function VO(firstProp:String=null,secondProp:String=null){ 
_firstProperty = firstProp; 
_secondProperty = secondProperty; 
} 

public function get firstProperty():String{ 
return _firstProperty; 
} 

public function set firstProperty(value:String):void{ 
_firstProperty = value; 
} 

public function get secondProperty():String{ 
return _secondProperty; 
} 

public function set secondProperty(value:String):void{ 
_secondProperty = value; 
} 

} 
} 

要求されたデータが利用可能です。

可能な限り少ない単語で、flexの値オブジェクトはデータ項目を表すactionsciptクラスです。 1つを使用するとは、一般的なオブジェクト(外部ソースから来る)をそのアクションスクリプト表現にマッピングすることを意味します。

何もない。

希望します。

+0

のVOは、外部データソースに結び付けられない方法です。ローカルに生成されたデータに対しても非常に便利です。 –

1

AMFPHPを使用できる場合は、私はそれを強くお勧めします。バリューオブジェクト(VO)は、サーバーとアクションスクリプトの両方で定義できます。これにより、強く型付けされたオブジェクトをクライアントからサーバーに渡すことができます。解析する、e4xを使用する、またはそのように苦しむ必要は全くありません。

VOはDTO(データ転送オブジェクト)とも呼ばれ、ブースはオブジェクト指向のデザインパターンです。

0

VOを外部オブジェクトと組み合わせて使用​​すると、あるオブジェクト(ある言語)から同等のオブジェクト(別の言語)にデータを転送できます。

XML、e4xなどを解析する代わりに、フレックスでゲートウェイ(つまり、ZendAMF、amfPHP、sabreAMFなど)を介してPHPに直接話すことができます。

このサイトでは、これを行う方法(リモートオブジェクトの設定)について説明しています。もちろん、Georgeが上で述べたことは良いことですが、リモートオブジェクトの実行を計画している場合はクラスを登録する必要があります。

http://www.brentknigge.com/?q=node/496

乾杯

関連する問題