【问题标题】:flex spark buttonbar : how to determine which button in mouseOver eventflex spark按钮栏:如何确定mouseOver事件中的哪个按钮
【发布时间】:2011-01-24 12:09:17
【问题描述】:

回复:spark.components.ButtonBar

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

感谢您的帮助。

【问题讨论】:

    标签: apache-flex button mouseover flex-spark


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    如果使用 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>
    

    希望对您有所帮助, 兰斯

    【讨论】:

    • 谢谢你,Lance,非常有帮助的解释和简洁的例子。
    猜你喜欢
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2018-10-12
    • 2011-04-01
    • 1970-01-01
    相关资源
    最近更新 更多