FlexActionscriptの質問。
画面上を移動するコールアウトボタンがあります。ドロップダウンを(クリックして)開くと、画面上の同じ位置に留まります(矢印のみが移動します)。コールアウトボタンの位置に従わない
このドロップダウンは、コールアウトボタンが移動したときの位置に追従するようにします(ボタンが移動したときにボタンをもう一度クリックしたときと同じように)。
MouseEvent.CLICKをディスパッチしようとしました。それは動作しません。また、closeDropDown()とopenDropDown()を実行するactionscriptを使用して、ドロップダウンを開いてから再度閉じようとしました。変化なし。
ありがとう
サンプルコード(creationCompleteからinit()を呼び出す):
creationComplete="init();">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import flash.events.MouseEvent;
import mx.events.DropdownEvent;
private function init():void {
var minuteTimer:Timer = new Timer(1*1000);
minuteTimer.addEventListener(TimerEvent.TIMER, updateCalloutPosition);
// starts the timer ticking
minuteTimer.start();
}
private function updateCalloutPosition(event:Event):void {
myButton.closeDropDown();
myButton.x = this.width * Math.random();
myButton.y = this.height * Math.random();
// myButton.openDropDown();
myButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
protected function myButton_clickHandler(event:MouseEvent):void
{
if (myButton.isPopUp) {
myButton.closeDropDown();
}
else {
myButton.openDropDown();
}
}
]]>
</fx:Script>
<s:CalloutButton id="myButton" click="myButton_clickHandler(event)">
</s:CalloutButton>