2010-03-20 66 views
0

我認爲這很容易,但我遇到了各種各樣的問題。我有一個帶有圖像和兩個標籤的ItemRenderer。我想將單獨的鼠標事件分配給圖像和兩個標籤。它看起來像項目渲染器被視爲一個單一的互動件,我還沒有找到一種方法來覆蓋它。我甚至無法禁用默認的翻滾效果,所以我不得不使用rollOverColor來匹配我的背景。無法與Flex 4中的itemRenderer的孩子互動Gumbo

任何人都可以提供解決方案嗎?

<s:DataGroup id="browserDataGroup" dataProvider="{model.userBoardList}" 
       verticalCenter="0" left="10" rollOverColor="0x424242" 
       itemRenderer="edu.xxxxx.components.board.BrowserItemRenderer"> 
<!--itemrenderer code below --> 
<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" 
     xmlns:ns="library://ns.adobe.com/flex/mx" 
     buttonMode="true" useHandCursor="true" 
     mouseChildren="true"> 
    <s:states> 
     <s:State name="up"/> 
     <s:State name="over"/> 
    </s:states> 
    <s:layout> 
    <s:VerticalLayout gap="2"/> 
    </s:layout> 
    <s:Group>  
    <ns:Image id="image" source="{data.thumbnail}" 
       addedEffect="Fade" completeEffect="Fade" removedEffect="Fade" 
       width="130" height="89" 
       horizontalCenter="0" verticalCenter="0"/> 
    <s:Rect id="imageRect" width="130" height="89"> 
     <s:stroke> 
      <s:SolidColorStroke color="0xFFFFFF" joints="miter" pixelHinting="true"/> 
     </s:stroke> 
    </s:Rect> 
    </s:Group> 
    <s:Label text="{data.title}" color="0xFFFFFF" fontWeight="bold"/> 
    <s:Group> 
     <s:layout> 
     <s:HorizontalLayout gap="3"/> 
     </s:layout> 
     <s:Label text="Edit" color="0xFFFFFF" click="trace('edit');" 
       textDecoration.up="underline" textDecoration.over="none"/> 
     <s:Label text="|" color="0xFFFFFF"/> 
     <s:Label text="Delete" color="0xFFFFFF" click="trace('delete');" 
       textDecoration.up="underline" textDecoration.over="none"/> 
    </s:Group> 

</s:ItemRenderer> 

回答

0

以防萬一,這可以幫助其他人,原來的解決方案是使用設置autoDrawBackground="false"itemRenderer實例。這會禁用疊加層的繪製。然後,我應該使用rollOverrollOut爲我想與之互動的個別孩子。菜鳥的錯誤......你討厭看到他們。