У меня есть круговая диаграмма mxml, которую я хотел бы медленно вращать до нажатия кнопки, однако при нажатии она должна быть немедленно остановлена (или, по крайней мере, достаточно быстро), а затем метки выноски вводятся с затуханием.
Я экспериментировал с функцией таймера, чтобы добиться этого:
protected function group1_creationCompleteHandler(event:FlexEvent):void
{
var rt:Timer = new Timer(20,0);
rt.addEventListener(TimerEvent.TIMER, rtt);
rt.start()
}
private function rtt(event:TimerEvent):void
{
QPieSeries.startAngle -=1;
}
, а также вариант callLater, который дает (что неудивительно) тот же эффект:
protected function group1_creationCompleteHandler(event:FlexEvent):void
{
rtt();
}
private function rtt():void
{
QPieSeries.startAngle -=1;
callLater(rtt);
}
Однако моя проблема заключается в том, что оба эти метода достижения этого эффекта очень плохо влияют на производительность, что понятно по большому количеству событий, которые многократно запускаются и принимаются.
Я пытался использовать подход var rotateVar:Rotate = new Rotate(QPieSeries)
, но проблема возникает, когда я его прекращаю, метки не соответствуют сегментам без применения метода QPieSeries.startAngle
, и это имеет привычку вести к прыжкам и т. д. и вообще крушению при применении в любом виде цикла.
Я думаю, что я действительно хочу сделать (ну, в том смысле, что это может привести к жизнеспособному решению), это что-то вроде QPieSeries.startAngle = 60
в цикле по времени, с каким-то интерполяционным эффектом? И в течение некоторого определенного периода времени, чтобы соответствовать периоду времени цикла.
Однако это за мной, если у кого-то есть что-то, чтобы предложить / сказать по этому поводу, я был бы очень признателен.
Спасибо!