Flex Spark ButtonBar: Как определить, какую кнопку в мероприятии MUSICOVER
-
25-09-2019 - |
Вопрос
Re: Spark.comPonents.Buttonbar.
В искре мыши Событие, как вы определяете, какие из нескольких кнопок мышь зависает? Есть, конечно, нет выбранного индекса в этом доходе. Если это имеет значение, моя кнопка ButtonBar не определена в MXML, но призвана в ActionScript и ArrayList присваивается свойство DataProvider My ButtonBar.
Спасибо за помощь.
Решение
Там нет реального легкого / встроенного способа сделать это, если 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>
Надеюсь, что помогает, Ланс
Другие советы
Вы можете просто использовать itemRollOver
Мероприятие Spark ButtonBar.