2011-02-09 62 views
0

我遇到了我的ItemRenderer,我用於一個火花列表的問題。我的代碼如下:SparkRenderer與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是:

<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> 

的事情是,如果我滾動列表,並點擊一個項目,它不會追蹤'亞瑟'!這是爲什麼?我必須追蹤有人在列表中點擊的時間!

編輯: 如果我刪除change="model.selectSet(productSetList)"在列表中,它的工作原理!但我不能刪除,有些建議?我怎樣才能切換到另一個功能?

+0

您是在調試/使用Flash Player的調試版本嗎? – 2011-02-09 16:00:29

+1

試着把它放在大括號中:`change =「{model.selectSet(productSetList)}」`。 – 2011-02-09 16:13:43

回答

1

跟蹤僅在調試/使用Flash Player的調試版本時有效。確保你正在使用它。如果你想有一個彈出式消息使用Alert.show("message")

有關跟蹤的更多信息()檢查: http://livedocs.adobe.com/flex/3/html/help.html?content=logging_08.html

而且Alert.show():http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001965.html


如果您正在運行調試播放器。嘗試使用嵌入的<s:Group>這種方式發起點擊事件,無論您在位圖中添加的位置如何,都會觸發點擊事件。

喜歡的東西:

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

我肯定有點擊的事件對我的工作的itemRenderer的內部之前

+0

謝謝伊恩,但我正在作爲調試模式運行,所有其他的痕跡工作正常,問題是這個功能它沒有達到所有的時間! – 2011-02-09 16:05:54

0

我道歉,我終於解決了它。問題是在函數內部,我打電話給List.change;我搞亂了名單!我的功能如下:

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

    } 

所以,我只是刪除了行:list.layout.verticalScrollPosition=100;現在它了工作的罰款。

感謝您的幫助!