2009-06-25 16 views
0

データオブジェクトのデータ値に応じて、行に異なるgifを表示するカスタムアイテムレンダラーがあります。私は絶対パスを使用してイメージのソースURLを設定し、それがうまく動作しますが、私は画像を埋め込むとき、私は上下にグリッドを上下にスクロールすると画像が乱れて、時々お互いの上に座ることがわかります。アクションスクリプト3とカスタムイメージitemrenderers

私のhboxアイテムレンダラーに画像を埋め込むことがなぜ面倒なのか、誰にも分かりません。あなたのアイテムレンダラーで

コード

public var equipment:Image; 
public var compr_icons:Bitmap = new AssetManager.COMPUTER_ICON; 

.. do some logic 
equipment.addChild(compr_icons); 
+0

イメージを設定しているイベントはありますか? –

答えて

0

、あなたが使用することが起こる方のデータバインドコントロールをナビゲートすると、あなたのdataProviderの各アイテム用のSDKによって暗黙的に呼び出されますdataセッターを(オーバーライドしてみてください)、およびそのように、そこから画像のsourceプロパティを設定:

<mx:List dataProvider="{yourDataSource}"> 
    <mx:itemRenderer> 
     <mx:Component> 
      <mx:HBox> 

       <mx:Script> 
        <![CDATA[ 

         override public function set data(value:Object):void 
         { 
          super.data = value; 

          // Set your values here (value contains your data item) 
          myImage.source = value.yourImageSourceInstance; 
          myLabel.text = value.yourLabelText; 
         } 

        ]]> 
       </mx:Script> 

       <mx:Image id="myImage" /> 
       <mx:Label id="myLabel" /> 

      </mx:HBox> 
     </mx:Component> 
    </mx:itemRenderer> 
</mx:List> 

...そしてそれは場合に役立ちます参照してください。おそらくFlexはレンダラーのビジュアル要素を再利用しようとしていますが、データの変更に合わせてスワップアウトすることは意図していません。その後(データ項目が設定されたときに)アクションを実行することで、レンダラのビジュアル要素の処理をより明示的に制御できます。

希望に役立ちます!

+0

私はすでにセットデータメソッドをオーバーライドしています。問題を引き起こしていることを理解できない – cduggan

+0

もう少しコードを投稿してみてください。あなたが投稿したものは、その問題が何であるかを推測するよりはるかに多くを行うことができるという話を十分に伝えていません。 –

関連する問題