Хорошо, я не буду говорить, что это лучший способ сделать это любым способом, но у меня есть решение.
В скине ButtonBar, который я сделал, я добавляю слушателя для creationComplete изDataGroup, а затем добавить слушателя для каждого из элементов внутри него.
<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 и посмотреть, с какой кнопкой взаимодействовали, и отправить пользовательское событие внутри функций, которые всплываютмой взгляд.
Я надеялся, что это будет более чистый способ сделать это, и это вполне может быть правдой, и я просто не знаю, как это сделать.У кого-нибудь еще есть другая идея?
Спасибо!