Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Очень медленно на сайте, быстро локально (http://www.flasher.ru/forum/showthread.php?t=153485)

Follower 03.04.2011 19:58

Очень медленно на сайте, быстро локально
 
Здравствуйте.
Необходимо было сделать плавное движение. Поставил таймер с интервалом в 1, получилось плавно, но медленно. Где-то прочитал, что количество кадров в секунду влияет и на таймеры, то есть если стоит 24 кадра в секунду, то минимальный интервал будет около 40 мс. Вкрутил в свойствах документа до 120, стало летать в самой программе, раза в полтора побыстрее стало, если запустить локально, и точно так же осталось на сайте. Глянул в html'е, создаваемом publish'ем, ничего про framerate там не нашел. Как убыстрить анимацию?

dark256 03.04.2011 20:03

с каким фрейрейтом публикация сегенерена, с тем она и будет всегда.
ФПС - может прыгать, в зависимости от нагрузки процессора графикой.
а таймер он по времени тикает, которое есть объективная реальность и неизменна :)

все прочее - рывки, сглаживание - улучшайте графику. или пример выложите.

Follower 03.04.2011 20:31

Ну не знаю, не знаю. Точно говорю - у меня фреймрейт документа влияет на скорость объекта, движущегося по таймеру. Я и сам думал, что таймер по времени считает, ан нет. Вы проверьте на простеньком примере.
UPD: Поставил 1 в свойствах документа - ужосужосужос. Рывками и с черепашьей скоростью. Во всей флешке 1 кадр, движение на таймерах, а вот поди ж ты...

dark256 03.04.2011 20:46

да я как бы так слегка не знаю что проверить.
таймер - это таймер. я сейчас кучу примеров хоть простеньких хоть сложных изображу :)
но если он каждые 100 мсек с таймера получает _х+=1, то он имено так у меня и двигается всегда :)
вы свой код лучше покажите, так мы барыжить до морковкиного заговения будем :)
другое дело если у вас на движение где-то onEnterFrame повешен. Так это слегка совсем другое дело.

Follower 03.04.2011 20:53

Код:

var Tim:Timer = new Timer(1,125);
Tim.addEventListener(TimerEvent.TIMER, tick);
Tim.addEventListener(TimerEvent.TIMER_COMPLETE, end);
function tick(e:TimerEvent):void
{
        for (i=endN-wNum; i<=endN; i++)
        {
                imgLoader[cycle][i].x +=  sh;//again no 'if' :)
        }
}

Теоретически должно за 125/1000 секунды пробежать, но нет же.
Может, дело в том, что их 5 одновременно двигается?
UPD: Timer frequency is limited to 60 frames per second, meaning a delay lower than 16.6 milliseconds causes runtime problems. - с сайта adobe. 60 fps - это 2 секунды движения, вместо нужных мне 0.5. Ну ладно же.
Сделал по 3 пикселя зараз, стало терпимо.

mooncar 03.04.2011 21:17

updateAfterEvent() попрбуйте после каждого цикла изменения координат.

incoob 03.04.2011 21:44

Может дело в wmode? Попробуйте при публикации в window выставить.

dark256 03.04.2011 21:45

EventDispatcher.addEventListener()
Availability:Flash Player 6 (6.0.79.0).
Edition:Flash MX 2004 and Flash MX Professional 2004.

Хм. Ну.... это нечто оочень старое. Под 6-й плэер. Вполне возможно что оно будет глючить :)

Tim:Timer = new Timer - это из АС3 ?

Я что-то в результате не могу понять, на какаом языке это написано и под какой плэер? :)

fish_r 04.04.2011 05:20

Никогда не получалось добиться плавного движения объектов через использование Timer(), setTimeout(), setInterval(). Видимо они изначально не предназначаются для таких вещей (в AS3.0, во всяком случае). Но, частота кадров, действительно, не может влиять на частоту срабатывания таймера, возможно движение, просто, лучше сглаживается из за высокой частоты.

Лучше используйте Tween() из пакета fl.transitions., там можно задавать как кадровую длительность выполнения, так и временную (последней, правда, не пользуюсь).

mooncar 04.04.2011 12:18

setInterval + updateAfterEvent() либо onEnterFrame при хорошем fps дают нормальную плавность движения.
А tween лучше использовать от Greensock, тот же TweenLite. Я, например, давно на него перешел от встроенного Tween.
Вот сравнительные тесты разных твинов.


Часовой пояс GMT +4, время: 03:14.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.