将自定义翻转和卷展栏添加到按钮栏按钮的最佳方法是什么?我尝试在我正在使用的自定义皮肤中添加eventlisteners但是不会触发mouseevents。
有什么想法吗?
谢谢!
答案 0 :(得分:0)
好的,我不会说这是通过任何方式做到这一点的最佳方法,但我确实有一个解决方案。
在ButtonBar Skin中,我为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并查看与之交互的按钮,并在功能中调度自定义事件,这些事件会冒泡到我的视图中。
我希望这是一种更干净的方式,这很可能是事实,我只是不知道该怎么做。其他人有不同的想法吗?
谢谢!