アクションスクリプトは、組み込みのレンダラーと比較して、より迅速でカスタマイズ可能なインターフェイスを提供するように見えるため、(Flash Builder 4.6で)アイテムレンダラーを作成しようとしています。 (ラベル/アイコンなど)。Flash BuilderでActionscriptにItemRendererを書き込む
私はリストに画像と2つのテキストフィールドを表示したいと考えました。現在のところ、これらの要素はすべてキャンバスに配置されますが、スクロールを開始するとすぐに(仮想リストに反映されます)、私の古い要素はステージから削除されません。例: は http://i.stack.imgur.com/Mk5HX.png をスクロールする前に http://i.stack.imgur.com/Qt7wZ.png
をスクロールした後のデータは、名前、画像、当社及びタイトルに格納されます。
この問題に関するヘルプや、実際に私がしようとしていることを実行するためのより良い方法は、非常に高く評価されます。
現在、私は、リソースの使用を最小限にするために(私は輸入品などを削除した)
public class UILabel2 extends IconItemRenderer
{
public function UILabel2() {
super();
}
override public function set data(value:Object):void
{
super.data = value;
var DBname:String = data.name as String;
var DBimage:String = data.image as String;
var DBcompany:String = data.Company as String;
var DBtitle:String = data.Title as String;
//iconField = location;
trace(DBname);
label = DBname;
messageField = "Peanuts";
//iconWidth=64;
//iconHeight=64;
avatarHolder = new Graphic();
avatar = new BitmapImage();
iconField = DBimage;
avatar.fillMode = "clip";
avatar.source = DBimage;
avatarHolder.width = 64;
avatarHolder.height = 64;
avatarHolder.addElement(avatar);
addChild(avatarHolder);
text2 = new TextField();
text2.x = textMargin;
text2.y = 45;
text2.text = DBcompany;
addChild(text2);
var text3:TextField = new TextField();
text3.x = textMargin;
text3.y = 25;
text3.text = DBtitle;
addChild(text3);
//trace(listArrow1MED);
arrowHolder = new Graphic();
//arrowHolder.width = 20;
//arrowHolder.height = 20;
arrowHolder.x= Wsize-40;
//trace(Wsize);
arrow = new BitmapImage();
arrow.fillMode = "clip";
arrow.source = listArrow1LGE;
arrowHolder.addElement(arrow);
addChild(arrowHolder);
//iconField = avatar;
}
あなたは一番の助力を受けてくれました。あなたの明確で簡潔な回答に感謝します。それを修正しました。 – user1383938
私はこの質問を見つけたばかりで、あなたの答えにコメントしたいと思います。一般的には正しいですが、要素の作成をコンストラクタに移動しないでください。正しい場所は 'createChildren'メソッドです。 – AlBirdie