重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

[Flex3]TileListへ動的にlabelとiconを追加する方法



TileListへ動的にlabelとiconを追加する方法が解りません。
ListやcomboBoxとほぼ同じとヘルプには書かれていますが、
ListやcomboBoxのdataProviderコントロールを使用しても、
以下の通り、動きません。
iconに@Embedをしなければならないとは思いますが、
addItemも使用出来ないようですし、完全に行き詰ってしまいました。
是非、ご教授頂けると幸いです。
どうぞ宜しくお願い致します



<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:MyDropHeres="containers.Boxes.*"
backgroundGradientColors="[0x0000FF, 0xCCCCCC]"
layout="absolute" width="600">

<mx:Panel title="MyDropHere" paddingTop="10" paddingBottom="10"
paddingLeft="10" paddingRight="10" width="159" x="10" y="189">
<MyDropHeres:MyDropHere id="body_img" verticalGap="2" height="51"
nativeDragEnter="dragOnEnter(event)"
nativeDragDrop="dragOnDrop(event)"/>
</mx:Panel>
<mx:Panel title="MyTileList" paddingTop="10" paddingBottom="10"
paddingLeft="10" paddingRight="10" x="177" y="189" width="396">

<mx:TileList dataProvider="{stateArray}"
x="20" y="20"
width="356" height="110">
<mx:Script>
<![CDATA[
import mx.collections.*;
[Bindable]
public var stateArray:ArrayCollection;

public function initData():void {
stateArray=new ArrayCollection(

[{label:"File name 1", icon:"app:/image1.png"},
{label:"File name 1", icon:"app:/image2.png"},
{label:"File name 1", icon:"app:/image3.png"}]);

}
]]>
</mx:Script>
</mx:TileList>
</mx:Panel>

=============

*TileListへlabelとiconを追加するFunctionは、dragOnDrop()です。

A 回答 (1件)

http://www.fxug.net/modules/xhnewbb/viewtopic.ph …

とのマルチポストですね。
二箇所で質問するということは、どちらかで行われた回答が徒労に終わる可能性があります。
普通はマナー違反として扱われることをご承知ください。

>TileListへlabelとiconを追加するFunctionは、dragOnDrop()です。

で、その肝心のdragOnDrop()の定義が示されていないわけですが、
どうやって問題を探ればよいのでしょうか。

回答者の苦労が無駄に増えないよう、ソースコードを投稿するさいには
その問題が発生する最小で完全なコードを投稿してください。
そのコードを少しいじって見ましたが、動的に追加することはできました。
ここまでやりましたが、マルチポストに気づいたらなんだかやる気が失せたので、
詳しい解説はしません。以下のコードを参考にご自分でなんとかしてください。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:TileList dataProvider="{stateArray}" initialize="initData();" iconField="icon" >
<mx:Script>
<![CDATA[
import mx.collections.*;
[Embed(source="example.png")] public var iconSymbol:Class;
[Bindable] public var stateArray:ArrayCollection;
public function initData():void {
stateArray = new ArrayCollection( [
{label:"File name 1", icon:iconSymbol},
{label:"File name 1", icon:iconSymbol},
{label:"File name 1", icon:iconSymbol}
]);
}
]]>
</mx:Script>
</mx:TileList>
</mx:Application>

この回答への補足

回答頂きまして、有難う御座います。
マルチポストにつきましては、一箇所で長期間質問しても回答が寄せられない状況から、同時投稿が前提のマルチポストポリシーとは例外的に質問する場所を増やす方向で得られない回答を得ようとしておりましたが、ご指摘頂いた以上、真摯に対応する責務が御座いますので片方を即時削除させて頂きます。
ご指摘頂いた事へ感謝申し上げますと共に、
回答頂いた事へも重ねて感謝致します。
この度は、お手数をお掛け致しましたが、有難う御座いました。

補足日時:2008/09/04 19:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!