Задача Flex Actionscript.выпадающий список перемещение calloutbutton
У меня есть кнопка вызова, которая перемещается по экрану. Когда я открываю выпадающий список (одним щелчком мыши), он остается в том же положении на экране (только стрелка перемещается). Он не соответствует позиции calloutbutton
Я бы хотел, чтобы это выпадающее меню выполняло положение кнопки callout, когда оно переместилось (как и при нажатии кнопки снова, когда оно переместилось).
Я попытался отправить MouseEvent.CLICK. Это не работает. Пробовал также открыть, затем закрыть всплывающее окно с actioncript sing closeDropDown() и openDropDown(). Без изменений.
Благодаря
Пример кода (вызов Init() из creationComplete):
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>
Поделитесь некоторым кодом. Я уверен, что всплывающее окно вызова расположено на основе расположения кнопок CallOut. Если кнопка движется, вам также придется перемещать всплывающее окно с использованием той же формулы. – JeffryHouser
ОК, я добавил код. Даже если вы удалите обработчик кликов, он не будет следовать за кнопкой. – user1453149
Ничто в коде не пытается переместить всплывающее окно при перемещении кнопки. Я не уверен, как получить доступ к всплывающему окну напрямую, это не очевидно из API CalloutButton. Возможно, вам придется расширить компонент, или вы можете попробовать открыть и закрыть всплывающее окно [есть методы для этого]. – JeffryHouser