Показать сообщение отдельно
Старый 01.07.2010, 17:04
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 1  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
По умолчанию Может ли событие enterFrame происходить у отдельных пользователей в 2 раза медленнее?

Пытаюсь понять, то ли меня дурят пользователи, то ли я сам чего-то не понимаю. По словам некоторых индикатор работает вдвое дольше требуемого. У меня везде работает штатно.

Сам индикатор работает так. Вычисляю длительность процесса в секундах (варьируется от 0.1 до примерно 40 секунд), умножаю на 30 (частота кадров приложения) и получаю количество фреймов, за которые бар индикатора должен дорасти от нуля до единицы. Отсюда получаю приращение бара индикатора deltaScale в сотых долях на каждый фрейм. Храню в целом числе (т.е., изначально умножаю на 100, а потом, чтобы получить сотые доли делю на 10000).

Затем просто вешаю на событие enterFrame вызов вот этой функции и жду, пока бар вырастет до единицы:

Код AS3:
private function showIndicator(e:Event) {
 
	loadingIndicator.growBar.scaleX += deltaScale / 10000;			
	if (loadingIndicator.growBar.scaleX>=1) {
		loadingIndicator.removeEventListener("enterFrame",showIndicator);
		removeChild(loadingIndicator);	
		loadingIndicator = null;
	}
}