フレックススパークボタンバー:MouseOverイベントのどのボタンを決定する方法
-
25-09-2019 - |
質問
再: スパーク.コンポーネント.ボタンバー
スパーク ButtonBar の マウスオーバー イベントが発生した場合、マウスがいくつかのボタンのどのボタンの上に置かれているかをどのように判断するのでしょうか?もちろん、この時点ではインデックスは選択されていません。違いがあるとすれば、私の ButtonBar は MXML で定義されていませんが、ActionScript でインスタンス化されており、ArrayList が ButtonBar インスタンスの dataProvider プロパティに割り当てられているということです。
助けてくれてありがとう。
解決
は、内蔵の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>
希望のに役立ちます、 ランス
他のヒント
あなたは単にスパークのButtonBarのitemRollOver
イベントを使用することができます。
所属していません StackOverflow