![]() |
Очень медленно на сайте, быстро локально
Здравствуйте.
Необходимо было сделать плавное движение. Поставил таймер с интервалом в 1, получилось плавно, но медленно. Где-то прочитал, что количество кадров в секунду влияет и на таймеры, то есть если стоит 24 кадра в секунду, то минимальный интервал будет около 40 мс. Вкрутил в свойствах документа до 120, стало летать в самой программе, раза в полтора побыстрее стало, если запустить локально, и точно так же осталось на сайте. Глянул в html'е, создаваемом publish'ем, ничего про framerate там не нашел. Как убыстрить анимацию? |
с каким фрейрейтом публикация сегенерена, с тем она и будет всегда.
ФПС - может прыгать, в зависимости от нагрузки процессора графикой. а таймер он по времени тикает, которое есть объективная реальность и неизменна :) все прочее - рывки, сглаживание - улучшайте графику. или пример выложите. |
Ну не знаю, не знаю. Точно говорю - у меня фреймрейт документа влияет на скорость объекта, движущегося по таймеру. Я и сам думал, что таймер по времени считает, ан нет. Вы проверьте на простеньком примере.
UPD: Поставил 1 в свойствах документа - ужосужосужос. Рывками и с черепашьей скоростью. Во всей флешке 1 кадр, движение на таймерах, а вот поди ж ты... |
да я как бы так слегка не знаю что проверить.
таймер - это таймер. я сейчас кучу примеров хоть простеньких хоть сложных изображу :) но если он каждые 100 мсек с таймера получает _х+=1, то он имено так у меня и двигается всегда :) вы свой код лучше покажите, так мы барыжить до морковкиного заговения будем :) другое дело если у вас на движение где-то onEnterFrame повешен. Так это слегка совсем другое дело. |
Код:
var Tim:Timer = new Timer(1,125);Может, дело в том, что их 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 пикселя зараз, стало терпимо. |
updateAfterEvent() попрбуйте после каждого цикла изменения координат.
|
Может дело в wmode? Попробуйте при публикации в window выставить.
|
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 ? Я что-то в результате не могу понять, на какаом языке это написано и под какой плэер? :) |
Никогда не получалось добиться плавного движения объектов через использование Timer(), setTimeout(), setInterval(). Видимо они изначально не предназначаются для таких вещей (в AS3.0, во всяком случае). Но, частота кадров, действительно, не может влиять на частоту срабатывания таймера, возможно движение, просто, лучше сглаживается из за высокой частоты.
Лучше используйте Tween() из пакета fl.transitions., там можно задавать как кадровую длительность выполнения, так и временную (последней, правда, не пользуюсь). |
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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.