2011-02-09 7 views
0

私はsparkリストに使用しているItemRendererに問題があります。spark ItemRendererで機能するリストが機能しません。

私はこのリストを持っている:以下れる私のコードの事は、私は、リストをスクロールする場合、で、項目をクリックし

<s:ItemRenderer 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/halo" 
    width="160" height="175" autoDrawBackground="false" buttonMode="true" useHandCursor="true" 
    click="click(event)" cacheAsBitmap="true" 
    > 


    <fx:Script> 
     <![CDATA[ 
      import com.png.vm.model.vos.ProductSet; 

      protected function click(event:MouseEvent):void 
      { 
       trace('arthur'); 
      } 

     ]]> 
    </fx:Script> 

    <s:BitmapImage source="{ProductSet(data).image}" width="160" height="175"/> 

</s:ItemRenderer> 

、:

<s:List 
    id="productSetList" 
    dataProvider="{ model.productSets }" 
    change="model.selectSet(productSetList)" 
    height="100%" width="100%" 
    borderVisible="false" 
    itemRenderer="SideBarItemRenderer" top="20" left="15"> 
</s:List> 

と私のitemRendererがされそれは 'アーサー'をトレースしていません!なぜこれはそうですか?誰かがリスト内をクリックするたびにそれを辿る必要があります!

編集: リストでchange="model.selectSet(productSetList)"を削除した場合、それは機能します。しかし私はそれを取り除くことができない、いくつかの提案?どのように他の機能に切り替えることができますか?

+0

デバッグ/ Flash Playerのデバッグバージョンを使用していますか? –

+1

中括弧で囲んでみてください。 'change =" {model.selectSet(productSetList)} "' –

答えて

1

トレースは、Flash Playerのデバッグバージョンをデバッグ/使用している場合にのみ機能します。それを使用していることを確認してください。 http://livedocs.adobe.com/flex/3/html/help.html?content=logging_08.html

をそしてAlert.show():あなたは、ポップアップメッセージがチェックアウト)(トレースの詳細についてはAlert.show("message")

を使用したい場合はhttp://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001965.html


デバッグを実行している場合プレーヤー。この方法で埋め込みのclickイベントを発生させてみてください。ビットマップを超えてここに追加したものは、引き続きclickイベントを引き起こします。

ような何か:私は間違いなく、イベントをクリックして持っていた

<s:Group width="100%" height="100%" click="click(event)" > 
    <s:BitmapImage source="{ProductSet(data).image}" width="160" height="175"/> 
</s:Group> 

+0

ありがとうIanですが、私はデバッグモードで動作していますが、他のすべてのトレースは正常に動作していますが、問題はこの機能が常に到達していないことです。 –

+0

Hmm。私は間違いなくアイテムのレンダリングの中で動作するクリックイベントを持っていました。私は別の解決策で自分の答えを更新します –

0

私の謝罪の前にItemRenderersの内側に私のために働く、私はそれを最終的に解決しました。問題は、関数内でmodel.selectSetがList.changeを呼び出していたことです。私はリストをつぶしていた!だから、

public function selectSet(list:List):void { 
     list.layout.verticalScrollPosition=100; 
     // another stuffs 

    } 

私はちょうどライン削除、::list.layout.verticalScrollPosition=100;をし、今も元気に働いて、それは `s次のように私の機能でした。

ありがとうございました!

+0

なぜあなたはあなたのモデルの中からあなたのビューを参照/微調整していますか?あなたの抽象が漏れています... –

+0

うん...古いコード...私はそれを修正しました! –

関連する問題