2011-02-09 5 views
0

spark List에 사용하고있는 ItemRenderer에 문제가 있습니다.spark 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를 사용하고 있습니까? –

+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


디버그를 실행하는 경우 플레이어. 삽입 된 <s:Group>에서 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

흠. 항목 렌더링 내에서 클릭 이벤트가 발생했습니다. 내 대답을 다른 솔루션으로 업데이트하겠습니다. –

0

전에 ItemRenderers 안에 나를 위해 나의 사과 일을 했어. 문제는 함수 내에서 model.selectSet입니다. List.change를 호출하고있었습니다. 나는 목록을 엉망으로 만들고있어! 그래서

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

    } 

난 그냥 라인 제거 : list.layout.verticalScrollPosition=100;을 지금은 잘 작동 그것은`다음과 같이 내 기능이었다.

모든 도움에 감사드립니다!

+0

왜 모델 내부에서 뷰를 참조/조정하고 있습니까? 귀하의 추상화가 새고 있습니다 ... –

+0

옙 ... 하하하 오래된 코드 ... 난 그냥 고쳤어! –

관련 문제