Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   чистим твины после анимации? (http://www.flasher.ru/forum/showthread.php?t=142977)

Dr_Bra 04.08.2010 15:32

чистим твины после анимации?
 
у меня есть переменная
Код AS3:

private var _myTween:Tween;

потом я ее очень активно использую, для движения примерно 10 объектов, в разное время. Например:
Код AS3:

_myTween = new Tween(_layer1, "y", Strong.easeIn, _layer1.y, _h+_layer1.height, 3, true);//Дерево
                        _myTween = new Tween(_layer2, "y", Strong.easeIn, _layer2.y, _h+_layer2.height, 3, true);//Газон
                        _myTween = new Tween(_layer3, "y", Strong.easeIn, _layer3.y, _h+_layer3.height, 4, true);//Облако

Через какое-то количество вызовов этих методов, анимация возьмет и "сглючит". Просто объекты останутся на своих местах. Нужно ли чистить твины? Или есть другое объяснение проблемы?

Hidest 04.08.2010 15:39

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

т.е. по идее, то что вы делаете, это тоже самое, что и

Код AS3:

_myTween =  new Tween(...);
_myTween = null;
_myTween =  new Tween(...);
_myTween = null;
_myTween =  new Tween(...);
_myTween = null;

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

Dr_Bra 04.08.2010 15:57

То есть одновременно нельзя использовать один твин для нескольких объектов?
Сейчас у меня в одном методе :
Код AS3:

_myTween = new Tween(_layer1, "y", Strong.easeIn, _layer1.y, _h+_layer1.height, 3, true);//Дерево
                        _myTween = new Tween(_layer2, "y", Strong.easeIn, _layer2.y, _h+_layer2.height, 3, true);//Газон
                        _myTween = new Tween(_layer3, "y", Strong.easeIn, _layer3.y, _h+_layer3.height, 4, true);//Облако


Hidest 04.08.2010 17:29

А, так они еще один за одним вызываются сразу... Я думал, они в разных местах кода вызываются, не мешая друг другу. Используйте разные экземпляры твинов, по необходимости очищая их (если больше не нужны будут)...

samana 04.08.2010 17:29

Цитата:

Сообщение от Hidest (Сообщение 926968)
По идее, каждый новый твин затирается следующим...

Разве? По моему создается новый твин, просто к предыдущему твину через переменную _myTween уже не обратится, потому что на ней новый твин повесили.

Dr_Bra 04.08.2010 17:33

все понятно, разобрался, спасибо!

Hidest 04.08.2010 17:46

Цитата:

Сообщение от samana (Сообщение 927006)
Разве? По моему создается новый твин, просто к предыдущему твину через переменную _myTween уже не обратится, потому что на ней новый твин повесили.

Так я примерно это и имел в виду, когда про ссылки сказал. Т.е. он не удалится сразу прям, но все равно такой подход чреват глюками.


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

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