Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.08.2006, 15:12
Koks вне форума Посмотреть профиль Отправить личное сообщение для Koks Найти все сообщения от Koks
  № 1  
Ответить с цитированием
Koks

Регистрация: Aug 2006
Сообщений: 5
По умолчанию Анимация начинает тормозить.

Сделал на флеш модель шкафа купе. При нажатии на двери, они сдвигаются в сторону, при наведении мышки на ящик он выдвигается, а когда мышку с ящика убираешь он закрывается. Вроде код простой, но если пробовать навести мышку на ящик во время движения двери, и проделать это несколько раз, то ящик начинает страшно тормозить. Не могу понять в чем дело.

Код дверей такой:

on (press) {
if (!a) {a=-1;}
a=-a;
function vidv() {
_root.dver1._x+=a;
if (_root.dver1._x>914) {clearInterval(time); _root.dver1._x=914;}
if (_root.dver1._x<753) {clearInterval(time); _root.dver1._x=753;}
updateAfterEvent();
}
var time:Number = setInterval(vidv,5);
}

Ящик при закрытой двери находится за ней и его не возможно активизировать. Код ящика такой:

onClipEvent (load) {
function vija() {
_root.jashik._x+=aja; _root.jashik._y+=aja/2;
if (_root.jashik._x>740) {_root.jashik._x=740; aja=0; _root.jashik._y=440;}
if (_root.jashik._x<720) {aja=0; _root.jashik._x=720; _root.jashik._y=430;}
updateAfterEvent();
}
aja=0;
setInterval(vija,5);
}

on (rollOver){aja=1;}
on (rollOut) {aja=-1;}


Для того чтобы понять суть вопроса, вкладываю в письмо исходник.
Вложения
Тип файла: rar alp25.rar (8.6 Кб, 53 просмотров)

Старый 15.08.2006, 15:15
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Странно...у меня ничего не тормиозит...

Старый 15.08.2006, 15:23
Koks вне форума Посмотреть профиль Отправить личное сообщение для Koks Найти все сообщения от Koks
  № 3  
Ответить с цитированием
Koks

Регистрация: Aug 2006
Сообщений: 5
Когда дверь еще не до конца открыта, во время её движения, если перебрасывать мышку с двери на ящик и обратно. Двадцати раз будет достаточно. После этого ящик начинает выдвигаться и задвигаться заметно дольше. Если проделать тоже самое еще несколько раз, ящик еще замедлиться. Не пойму почему это происходит.

Старый 15.08.2006, 15:29
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 4  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
А...заметил...но когда я пожертвовал updateAfterEvent(), тормоза исчезли, а лично для меня это почти незаметно визуально...
А если поднять частоту кадров до 24, то вообще разницу уловить не могу...

Старый 15.08.2006, 16:09
Koks вне форума Посмотреть профиль Отправить личное сообщение для Koks Найти все сообщения от Koks
  № 5  
Ответить с цитированием
Koks

Регистрация: Aug 2006
Сообщений: 5
Убрал везде updateAfterEvent(), повысил частоту кадров. Теперь заметил что чем больше раз открываешь и закрываешь дверь, тем она быстрее начинает двигаеться. Особенно это заметно если не трогать другую дверь, а потом сравнить скорость их открывания. Что за ерунда то, ничего не понимаю.

Старый 15.08.2006, 16:13
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 6  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Все эти странности возможно из-за того, что 5 мс - слишком маленький промежуток. Точность таймеров +-20 мс, насколько я знаю, причем это относится к системе в целом, а не только ко флешу...

Старый 15.08.2006, 16:13
Reijii вне форума Посмотреть профиль Отправить личное сообщение для Reijii Найти все сообщения от Reijii
  № 7  
Ответить с цитированием
Reijii
 
Аватар для Reijii

Регистрация: Apr 2004
Адрес: Харьков, Украина
Сообщений: 463
Отправить сообщение для Reijii с помощью ICQ
а если попробовать делать без использования setInterval, а использовать
Transitions ?
__________________
Feсi quod potui, faciant meliora potentes

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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