Question

re: spark.components.ButtonBar

Dans l'étincelle de ButtonBar mouseOver événement , comment déterminez-vous qui des plusieurs boutons de la souris plane au-dessus? Il y a, bien sûr, index sélectionné à ce stade. Si cela fait une différence, mon ButtonBar ne définit pas MXML mais est instancié dans ActionScript et un ArrayList est affecté à la propriété dataProvider de mon exemple ButtonBar.

Merci pour l'aide.

Était-ce utile?

La solution

Il n'y a pas vraiment facile / moyen intégré pour le faire si Flex 4, et je pense que c'est une bonne chose. , Ils vous donnent accès à la place aux équarrisseurs via ElementExistenceEvent.RENDERER_ADD et ElementExistenceEvent.RENDERER_REMOVE, vous pouvez donc chercher toutes sortes d'événements sur les enfants. Essayez ceci:

<?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>

Hope qui aide, Lance

Autres conseils

Vous pouvez simplement utiliser l'événement itemRollOver de la barre de boutons d'allumage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top