1

私はパセリフレームワークを使用しています。カスタム ビジュアル Tree コンポーネントにモデルを挿入しようとしています。

private var _model:Model

[Bindable]

public function get model():Model
{
  return _model;
}

public function set model(value:Model):void
{
  _model = value;
}

ビルド構成:

<Object id="customTree" type="{CustomTree}">
  <Property name="model" idRef="model"/>
</Object>

次に、mxml でこのツリーを使用しました。

<components:CustomTree
        id="categoriesTree"
        width="100%" height="100%"
        labelField="@title"
        right="0" bottom="0" left="0" top="10"           
        doubleClickEnabled="true"
        maxHorizontalScrollPosition="250"
        horizontalScrollPolicy="auto"
        dragEnabled="true"
        dropEnabled="true"
        dataProvider="{model.dataHolder}"
        />

親関数をオーバーライドしようとしましたが、エラーが発生しました。(モデルはヌル); override protected function dragDropHandler(event:DragEvent):void { model.action = "drop" }

モデルセッターにブレークポイントを設定しましたが、実行されましたが、モデルはまだnullです。

問題はどこだ?

4

2 に答える 2

1

この問題を解決する方法を見つけました。ビジュアル コンポーネントに smth を挿入しようとする場合は、ビジュアル コンポーネントを構成するのと同じ方法で構成する必要があります。

public class CustomTree extends Tree
{

public function CustomTree ()
{
  super();
  this.addEventListener(Event.ADDED_TO_STAGE, configure);
}

protected function configure(event:Event):void
{
  this.dispatchEvent(new Event ('configureIOC', true));
}

... }

Mb誰かが他の解決策を持っていますか?

于 2011-08-23T14:20:21.677 に答える
0

パセリで CustomTree をインスタンス化するかどうかわからない。代わりに、モデルをビューに挿入し、mxml の CustomTree インスタンスをモデルにバインドさせます。

構成:

<Object id="model" type="Model"/>

MXML:

<mx:Script>
        <![CDATA[
[Inject(id='model')]
[Bindable]
public var model:Model;
]]>
    </mx:Script>

<components:CustomTree
        id="categoriesTree"
        width="100%" height="100%"
        labelField="@title"
        right="0" bottom="0" left="0" top="10"           
        doubleClickEnabled="true"
        maxHorizontalScrollPosition="250"
        horizontalScrollPolicy="auto"
        dragEnabled="true"
        dropEnabled="true"
        dataProvider="{model.dataHolder}"
        />

インジェクションにIDは必要ありません。タイプごとにインジェクトでき​​ます。インジェクトタグとモデルの設定からIDをドロップするだけです。

于 2011-08-23T23:48:38.393 に答える