|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Lorem ipsum
|
Похоже на то, что tween работает на таймере, а в обработчике используется updateAfterEvent().
Добавлено через 6 минут import flash.display.Shape; import flash.utils.Timer; import flash.events.TimerEvent; var shape:Shape = new Shape(); shape.graphics.lineStyle(1.2); shape.graphics.drawCircle(0, 0, 50); shape.x = 100; shape.y = 200; stage.addChild(shape); var timer:Timer = new Timer(16); timer.addEventListener(TimerEvent.TIMER, onTimer); timer.start(); var step:Number = 3; var right:Number = 480; var left:Number = 70; function onTimer(event:TimerEvent):void { shape.x += step; if (shape.x >= right) { shape.x = right; step = -step; } else if (shape.x <= left) { shape.x = left; step = -step; } // эта заветная строчка делает все плавным event.updateAfterEvent(); }
__________________
Поймай яблоко 2! |
|
|||||
Lorem ipsum
|
Для того и существует этот метод
__________________
Поймай яблоко 2! |
|
|||||
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
не стоит им злоупотреблять вообще-то.
__________________
Отряд Котовскага |
|
|||||
Lorem ipsum
|
не стоит. но он есть ) и применили в данном примере именно его.
__________________
Поймай яблоко 2! |
|
|||||
вообще интересная штука, можно получается практически иметь разный fps в разных частях флешки. Надо будет попробовать поизвращаться, что будет если сделать очень низкий fps, близкий к нулю, как себя плеер поведёт.
__________________
:) |
|
|||||
Lorem ipsum
|
Мы отвлекаемся. Данная возможность была упомянута исключительно в контексте вопроса автора.
__________________
Поймай яблоко 2! |
|
|||||
ну ответ то найден, они просто обновляют графику чаще чем тикают фреймы. Движение на 4 пикселя за фрейм конечно дёргается, а если за фрейм перерисовать графику 4 раза то нормально будет. Другой вопрос в том что будет когда таких твинеров станет не 3, а 300 на экране.
__________________
:) Последний раз редактировалось iNils; 17.05.2012 в 06:53. |
|
|||||
Lorem ipsum
|
Цитата:
import flash.display.Shape; import flash.utils.Timer; import flash.events.TimerEvent; var shapeArray:Array = []; var phaseArray:Array = []; var ratioArray:Array = []; var shape:Shape; for (var i:int = 0; i < 300; i++) { shape = new Shape(); shape.graphics.lineStyle(2, uint(Math.random() * 0xffffff)); shape.graphics.drawCircle(0, 0, Math.random() * 20 + 10); stage.addChild(shape); shapeArray.push(shape); phaseArray.push(Math.random() * Math.PI); ratioArray.push(Math.random() * 4 - 2); } var phase:Number = 0; var timer:Timer = new Timer(16); timer.addEventListener(TimerEvent.TIMER, onTimer); timer.start(); function onTimer(event:TimerEvent):void { var i:int = shapeArray.length; while (i--) { shape = shapeArray[i]; shape.x = Math.sin((phase + phaseArray[i]) * ratioArray[i]) * 200 + 275; shape.y = Math.cos( phase + phaseArray[i]) * 150 + 200; } phase += 0.025; // эта заветная строчка делает все плавным event.updateAfterEvent(); }
__________________
Поймай яблоко 2! |
|
|||||
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Огромное спасибо за ответ. Оказалось, вопрос был задан не напрасно)
Aquahawk, если что интересного "наизвращаешь" - сообщи обязательно. |
Часовой пояс GMT +4, время: 01:05. |
|
« Предыдущая тема | Следующая тема » |
|
|