Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Анимация начинает тормозить. (http://www.flasher.ru/forum/showthread.php?t=83769)

Koks 15.08.2006 15:12

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

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

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;}


Для того чтобы понять суть вопроса, вкладываю в письмо исходник.

DarkLight 15.08.2006 15:15

Странно...у меня ничего не тормиозит...

Koks 15.08.2006 15:23

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

DarkLight 15.08.2006 15:29

А...заметил...но когда я пожертвовал updateAfterEvent(), тормоза исчезли, а лично для меня это почти незаметно визуально...
А если поднять частоту кадров до 24, то вообще разницу уловить не могу...

Koks 15.08.2006 16:09

Убрал везде updateAfterEvent(), повысил частоту кадров. Теперь заметил что чем больше раз открываешь и закрываешь дверь, тем она быстрее начинает двигаеться. Особенно это заметно если не трогать другую дверь, а потом сравнить скорость их открывания. Что за ерунда то, ничего не понимаю.

DarkLight 15.08.2006 16:13

Все эти странности возможно из-за того, что 5 мс - слишком маленький промежуток. Точность таймеров +-20 мс, насколько я знаю, причем это относится к системе в целом, а не только ко флешу...

Reijii 15.08.2006 16:13

а если попробовать делать без использования setInterval, а использовать
Transitions ?


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

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