AMF を介してサーバーからデータを遅延ロードするための確立されたパターンがあります。
private var _XeventDispatched:Boolean;
private var _X:ArrayCollection;
public function get X():ArrayCollection{
if(!_XeventDispatched && (_X==null || _X.length==0)){
var evt:Event = new Event();//whatever event is need for this data member
dispatcher.dispatchEvent(evt);
_XeventDispatched = true;
}
return _X;
}
public function set X(ac:ArrayCollection):void{
return _X;
}
このようにして、データは必要になるまでサーバーからロードされません。(ちなみに、私は Mate フレームワークを使用しているため、UI がインスタンス化され、インジェクターが起動すると、データ マネージャー クラスでこの get メソッドが呼び出されます。)
私がやりたいのは、パブリック プロパティの代わりに上記のメソッドを追加する [Bindable] に似た、ある種のメタデータ タグを作成することです。
[LazyLoaded(eventName="com.myCompany.LoadX")]
public var X:ArrayCollection;
コンパイラには、このタイプの拡張用のフックがありますか? 読みにくい定型コードを大幅に節約できます。