2010-12-12 23 views

回答

0

好吧,我不會說這是以任何方式做到這一點的最佳方式,但我確實有一個解決方案。

在ButtonBar皮膚中,我爲DataGroup的creationComplete添加了一個偵聽器,然後爲其中的每個元素添加一個偵聽器。

<fx:Script> 
    <![CDATA[ 
     import com.mattel.styleguide.events.DesignDropDownEvent; 

     import mx.controls.Alert; 

     private function init():void 
     { 
      for (var i:int = 0; i < dataGroup.numElements; i++) 
      { 
       dataGroup.getElementAt(i).addEventListener(MouseEvent.ROLL_OVER, onRollOver); 
       dataGroup.getElementAt(i).addEventListener(MouseEvent.ROLL_OUT, onRollOut); 
      } 
     } 

     private function onRollOver(e:MouseEvent):void 
     { 
      //dispatch custom event 
     } 

     private function onRollOut(e:MouseEvent):void 
     { 
      //dispatch custom event 
     } 
    ]]> 
</fx:Script> 

<s:DataGroup id="dataGroup" width="100%" height="100%" creationComplete="init()"> 
    <s:layout> 
     <s:ButtonBarHorizontalLayout gap="-1"/> 
    </s:layout> 
</s:DataGroup> 

這使得翻轉/部署事件被打到每個按鈕的話,我可以檢查e.currentTarget,看看哪個按鈕與互動,派遣其泡了我的看法功能內自定義事件。

我希望這是一個更乾淨的方式來做到這一點,這很可能是事實,我只是不知道該怎麼做。其他人有不同的想法?

謝謝!