1

回复:spark.components.ButtonBar

在 spark ButtonBar 的mouseOver事件中,如何确定鼠标悬停在几个按钮中的哪一个?当然,目前还没有选定的索引。如果有所不同,我的 ButtonBar 没有在 MXML 中定义,而是在 ActionScript 中实例化,并且 ArrayList 被分配给我的 ButtonBar 实例的 dataProvider 属性。

谢谢您的帮助。

4

2 回答 2

1

如果使用 Flex 4,则没有真正简单/内置的方法可以做到这一点,我认为这是一件好事。ElementExistenceEvent.RENDERER_ADD相反,它们使您可以通过和访问渲染器ElementExistenceEvent.RENDERER_REMOVE,因此您可以在子级上查找各种事件。试试这个:

<?xml version="1.0" encoding="utf-8"?>
<s:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[

            import mx.core.IVisualElement;
            import spark.events.RendererExistenceEvent;

            protected function rendererAddHandler(event:RendererExistenceEvent):void
            {
                var element:IVisualElement = event.renderer;
                element.addEventListener(MouseEvent.MOUSE_MOVE, renderer_mouseMoveHandler);
            }

            protected function rendererRemoveHandler(event:RendererExistenceEvent):void
            {
                var element:IVisualElement = event.renderer;
                element.removeEventListener(MouseEvent.MOUSE_MOVE, renderer_mouseMoveHandler);
            }

            protected function renderer_mouseMoveHandler(event:MouseEvent):void
            {
                trace(event.currentTarget.label);
            }

        ]]>
    </fx:Script>

    <s:ButtonBar id="buttonBar"
        rendererAdd="rendererAddHandler(event)"
        rendererRemove="rendererRemoveHandler(event)">
        <s:dataProvider>
            <mx:ArrayList source="[one, two, three, four]"/>
        </s:dataProvider>
    </s:ButtonBar>
</s:Application>

希望有帮助,兰斯

于 2010-03-06T23:08:39.653 回答
0

您可以简单地使用itemRollOver火花按钮栏的事件。

于 2011-07-17T13:13:39.867 回答