Плавность движения

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
Garch
Сообщения: 186
Зарегистрирован: 27 ноя 2011, 20:49

Плавность движения

Сообщение Garch »

Мне надо сделать чтобы при наведении мыши в определенную часть сцены фон плавно, но быстро двигался, есть код

Код: Выделить всё

 stage.addEventListener(Event.ENTER_FRAME, mover); function mover(event:Event):void{                        if(mouseX>=(stage.stageWidth-200)&&mouseX<=stage.stageWidth){                fon.x-=10;            }        } 
Но плавности не видно) Не подскажите как сделать?
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Плавность движения

Сообщение sanych_dv »

1. Увеличить frameRate ролика.
2. Использовать событие TIMER (у этого класса более гибкие настройки), а не ENTER_FRAME.

Код: Выделить всё

 package {    import flash.display.Sprite;    import flash.events.*;    import flash.utils.Timer;         public class Main extends Sprite     {                private var timer:Timer = new Timer(20);        private var bg:Bg;                public function Main():void         {        stage ? init() : addEventListener(Event.ADDED_TO_STAGE, init);        }                private function init(e:Event = null):void         {            removeEventListener(Event.ADDED_TO_STAGE, init);                        stage.frameRate = 60;             bg = new Bg;            addChild(bg);            timer.addEventListener(TimerEvent.TIMER, onTimer);            timer.start();        }                private function onTimer(e:TimerEvent):void         {            mouseX >= stage.stageWidth - 200 && mouseX <= stage.stageWidth ? bg.x += 10 : null;        }            }    } 
Garch
Сообщения: 186
Зарегистрирован: 27 ноя 2011, 20:49

Re: Плавность движения

Сообщение Garch »

sanych_dv писал(а):1. Увеличить frameRate ролика.
2. Использовать событие TIMER (у этого класса более гибкие настройки), а не ENTER_FRAME.

Код: Выделить всё

 package {    import flash.display.Sprite;    import flash.events.*;    import flash.utils.Timer;         public class Main extends Sprite     {                private var timer:Timer = new Timer(20);        private var bg:Bg;                public function Main():void         {        stage ? init() : addEventListener(Event.ADDED_TO_STAGE, init);        }                private function init(e:Event = null):void         {            removeEventListener(Event.ADDED_TO_STAGE, init);                        stage.frameRate = 60;             bg = new Bg;            addChild(bg);            timer.addEventListener(TimerEvent.TIMER, onTimer);            timer.start();        }                private function onTimer(e:TimerEvent):void         {            mouseX >= stage.stageWidth - 200 && mouseX <= stage.stageWidth ? bg.x += 10 : null;        }            }    } 

а есть еще какой нибудь более плавный способ? В полноэкранном режиме этот способ все ранво с подергиваниями((
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Плавность движения

Сообщение sanych_dv »

Включить аппаратное ускорение )

вы в отладке посмотрите, держит ли ролик установленный вами FPS. И оптимизируйте графику.
Garch
Сообщения: 186
Зарегистрирован: 27 ноя 2011, 20:49

Re: Плавность движения

Сообщение Garch »

sanych_dv писал(а):Включить аппаратное ускорение )

вы в отладке посмотрите, держит ли ролик установленный вами FPS. И оптимизируйте графику.

эмм... а как его включить?
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Плавность движения

Сообщение Alazaur »

Garch, лучше начните с проверки второго)
Ответить