Flex を使い始めたばかりです。哀れなのはわかってるけど話が長い。今、私が直面している問題は、データプロバイダーを持つリスト コンポーネントがあることです。私がやりたいのは、リストの項目がクリックされたときに、ラベルのすぐ横にチェックマークを付けたいということです。
以下はコンポーネントです。
<s:List id="tabList" width="100%"
borderVisible="false" click="tabList_clickHandler(event)"
selectedIndex="{this.hostComponent.selectedIndex}"
itemRenderer="MultiTabListRenderer" />
以下は Itemrenderer コードです。
protected function AddCheck_clickHandler(event:MouseEvent):void {
// TODO Auto-generated method stub
var checkLabel:Label;
checkLabel = new Label();
checkLabel.text = "checkMark";
var e: ItemClickEvent = new ItemClickEvent(ItemClickEvent.ITEM_CLICK, true);
e.item = data;
e.index = itemIndex;
dispatchEvent(e);
this.checkRectGroup.addElementAt(checkLabel, e.index);
}
<s:Label id="customMultitabList" text="{data.label}"
left="10" right="0" top="6" bottom="6" click="AddCheck_clickHandler(event)"/>
関数内のコードが間違っています。これは主に、フレックスのすべてを理解していないことが原因です。私にとっては長期的な仕事ではないので、言語を詳細に学ぶ気分にはなりません。また、s:label の代わりに s:List を使用すると、レンダラー ファイルでラベルが表示されなくなります。もちろん、属性テキストを dataprovider={data.selectedItem} に置き換えます。