![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2008
Сообщений: 25
|
Как изменить скорость воспроизведения заданного MovieClip-а .
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 25
|
мне нужно применительно одному MovieClip-у.
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 25
|
А по другому никак?
|
|
|||||
|
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
Первое, что пришло в голову:
package { import flash.display.MovieClip; import flash.utils.setInterval; import flash.utils.clearInterval; public class MyMovieClip extends MovieClip { private var interval_id:uint; private var speed:Number; public function MyMovieClip() { stop(); speed = 10; // скорость воспроизведения в миллисекундах interval_id = setInterval(changeFrame,speed); } private function changeFrame():void { nextFrame(); if (currentFrame == totalFrames) { clearInterval(interval_id); } } } } |
|
|||||
|
Регистрация: Nov 2008
Адрес: Москва
Сообщений: 52
|
musat
Это верно только если отрисовывать все кадры MyMovieClip необязательно, сцена будет перерисовываться по глобальному значению frameRate, а не каждые 10 миллисекунд. |
|
|||||
|
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
faust.d503
Только что попробовал на практике, все вроде прекрасно работает. Исходник приложил. Чтобы увидеть результат, в классе MyMovieClip.as закомментируйте и раскомментируйте следующую строчку. |
|
|||||
|
Регистрация: Nov 2008
Адрес: Москва
Сообщений: 52
|
В конкретно вашем случае ошибку, о которой я говорю не видно.
Вот тоже самое с другими значениями. Как видим вместо того, чтобы быстро писать 1, 2, 3 и т.д. он пишет 2, 9, 16. Как я и говорил перерисовка сцены происходит по значению frameRate. Так что надо принудительно еще и сцену перерисовывать по интервалу. Скорость кстати тоже будет чуть помедленнее, чем указана в параметре speed, ибо это время между окончанием выполнения в функции в прошлый раз и началом в следующий. А функция тоже какое-то время(хотя чаще всего и очень маленькое) выполняется. Проверить можно поставив в любой интервал getTimer(); Последний раз редактировалось faust.d503; 18.11.2008 в 01:35. |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 25
|
а нет метода тобы все фреймы прокручивались?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|