2010-11-24 19 views
0

キャンバスやvboxなどが異なるタイルリストを作成したいと思います。ドラッグ可能なキャンバスを持つTileListを作成する際の問題

これを行うコードを書きましたが、出力にはリストに何も表示されません。

<mx:TileList width="1500" height="1000" dragMoveEnabled="true" 
       selectable="true" selectionColor="#FFFFFF" 
       dragEnabled="true" dropEnabled="true" 
       columnCount="1" rowHeight="160"> 
     <mx:dataProvider> 
      <mx:Array> 
       <mx:Canvas width="1450" height="100"> 
        <mx:Button label="Testin the buttong"/> 
       </mx:Canvas> 
       <mx:Canvas width="1450" height="100"> 
        <mx:Button label="Testin"/> 
       </mx:Canvas> 
      </mx:Array> 
     </mx:dataProvider> 
    </mx:TileList> 

どうすればこの問題を解決できますか?または私がここで間違っていることを教えてください。

おかげで、よろしく Zeeshan

答えて

0

はあなたのdataProviderは、ある種のオブジェクトを持っている必要があります。理論的には、それらはCanvasのインスタンスになる可能性がありますが、ビジュアルコンポーネントをdataProviderとして使用することは非常に珍しいことです。あなたがしたいことはitemRenderersで読み上げられます。 itemRendererは、dataProviderの各インスタンスをレンダリングするために使用されるコンポーネントです。私は、一般的なオブジェクトとスクリプトでのdataProviderを定義要するに

<mx:script><[[ 
public var mydb : Array = [ 
    {label: 'Testin the buttong'}, 
    {label: 'Testin'} 

    ] 
]]></mx:script> 

<mx:TileList width="1500" height="1000" dragMoveEnabled="true" 
       selectable="true" selectionColor="#FFFFFF" 
       dragEnabled="true" dropEnabled="true" 
       columnCount="1" rowHeight="160" dataProvider="{mydp}"> 
     <mx:itemRenderer> 
     <mx:Component> 
       <mx:Canvas width="1450" height="100"> 
        <mx:Button label="{data.label}"/> 
       </mx:Canvas> 
     </mx:Component> 
     </mx:itemRenderer> 
    </mx:TileList> 

はこのような何かを試してみてください。そしてitemRendererをインラインで定義しました。このような何かが少なくとも何かを見せるべきです。

通常、ドラッグを開始するためにクリックするものがないので、キャンバスをドラッグできるかどうかはわかりません。あなたはTitleWindowを考慮する必要があります。

ブラウザにコードを書きましたので、標準的な免責事項が適用されます。

+0

これは私が望んでいないものです。私はタイルリストを別のキャンバスにしていて、すべてのキャンバスには別のものがあります。ここのデータ提供者とは仕事できません。その他のソリューション。 –

+0

異なるアイテムを表示するitemRenderersを作成できます。 Sparkコントロールでは、itemRendererFunctionを使用して[some criteria]に基づいて異なるitemRendererを使用することさえできます。 – JeffryHouser

関連する問題