почему подростки останавливаются случайно? - PullRequest
2 голосов
/ 21 ноября 2008

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

var t:Tween;
t = new Tween(child1,"x",Elastic.easeOut,0,100,2,true);
t = new Tween(child1,"y", Elastic.easeOut,0,100,2,true);
t = new Tween(child2,"x",Strong.easeOut,300,400,1,true);
t = new Tween(child2,"y", Strong.easeOut,300,400,1,true);

Ответы [ 3 ]

4 голосов
/ 21 ноября 2008

Кроме того, попробуйте использовать анимацию с открытым исходным кодом, а не с Flash. Два очень популярных из них - TweenLite и Tweener . Они предлагают большую производительность и больше функциональности / опций.

3 голосов
/ 21 ноября 2008

Каждая анимация должна быть назначена отдельной переменной в глобальной области видимости. Следующий код ведет себя надежно:

var t1:Tween = new Tween(child1,"x",Elastic.easeOut,0,100,2,true);
var t2:Tween = new Tween(child1,"y", Elastic.easeOut,0,100,2,true);
var t3:Tween = new Tween(child2,"x",Strong.easeOut,300,400,1,true);
var t4:Tween = new Tween(child2,"y", Strong.easeOut,300,400,1,true);

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

Та же проблема может возникнуть, если вы используете отдельные переменные, но объявляете их в локальной области видимости функции, а не в глобальной области видимости вашего фрейма.

1 голос
/ 21 марта 2013

Вы также можете создать массив в области видимости вашего класса, а затем просто добавить к этому массиву анимацию. Хотя это может привести к тому, что анимации в массиве никогда не будут собираться мусором, даже после их завершения, поэтому вы можете захотеть очистить массив самостоятельно в точках, в которых вы знаете, что все анимации завершены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...