Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема класса Tween: преждевременная остановка выполнения функции - зависание (http://www.flasher.ru/forum/showthread.php?t=144275)

stinkybob 08.09.2010 00:35

Проблема класса Tween: преждевременная остановка выполнения функции - зависание
 
Доброго времени суток. Столкнулся тут с 1 проблемой... может у кого-нибудь есть опыт решения, буду благодарен за инфу

в общем суть такова:

создаю бональную вещь


Код AS3:

var tween:Tween = new Tween(object,"y",Strong.easeOut,object.y,125,1,true);

все конечно работает, но довольно часто возникает проблема зависания во время воспроизведения как в среде так и вне ее..

объект по заданной функции перемещается с 1 точки "y" в другую

и в этот момент (передвижения) "оно" просто останавлевается не достигнув финиша, проверял на многих машинах с хорошим железам для такой больности за глаза и за уши но вот хоть тресни но парой зависает...

Заранее благодарен за любую полезную информацию

nOobCrafter 08.09.2010 01:01

твин умирает... бывает так что перемещая обьект возле какого нить темного переулка, наш бедный локальный твин нарывается на злобного бычару GC и тот не долго думая его убивает и хавает безжизненный трупик(( право же это печально... :cry:

Ах...как это ужастно, что бы этого не повторялось могу предложить вам сохранять ссылки на твины где нибудь в методах класса, а как те отработают — выбрасывать их как ненужные вещи проч, дабы не захламляли нашу память.
Ну или начать юзать более удобные велосипеды аля Twenner \ TweenLite

stinkybob 08.09.2010 13:37

Спасибо в TweenLite таких деффектов пока не обнаружил зато много других =))

Alex Lexcuk 08.09.2010 14:05

Я думаю, твин умирает если принудительно изменить у объекта свойство, например
Код AS3:

object.y = 10;

скорее всего работающий в это время Tween даст дуба, что-бы избежать такой ситуащии можно так поступить
Код AS3:

                private var o:Object, tween:Tween, max:int, min:int;
                public function DocTweenMacOs()
                {
                        max = -100;
                        min = 100;
                        o = new Object;
                        tween = new Tween(o, "i", None.easeNone, min, max, 0.3, true);
                        tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenMotionChange);
                }
                private function tweenMotionChange(evt:TweenEvent):void {
                        trace(o.i);
                                          object.y = o.i;
                }

Такой пустой объект всегда будет нормально управлять экранным объектом.
Небольшое описани и исходник
http://www.murmadillo.tut.su/html/tw...c-os-menu.html

kackbip 08.09.2010 14:09

Цитата:

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

mikhailk 08.09.2010 14:21

Классику надо знать. :)

Твин прибивает GC.

stinkybob 08.09.2010 15:26

мм а что такое GC =)

kackbip 08.09.2010 16:54

garbage collector


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

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