Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   TweenMax как удалить Child после завершения анимации (http://www.flasher.ru/forum/showthread.php?t=185877)

Freeman1st 23.10.2012 12:44

TweenMax как удалить Child после завершения анимации
 
Не получается выдает ошибки какие - то типа ArgumentError: Error #1063...


Код:

function inte ():void
{

for (var i:uint = 0; i<10; i++)
{
        var shiftingx:Number = Math.random()*15;
        formatter.color = Math.random() * 0xFFFFFF;
        var shiftingy:Number = Math.random()*20;
        var RanSize:Number = Math.floor(Math.random()*35+10)
        formatter.size = RanSize
        var mat:Number = Math.floor(Math.random()*arr.length)
        tex =  new TextField;
        tex.width = 400;
        addChild(tex)
        tex.text = arr[mat];
        tex.setTextFormat(formatter);
        tex.x = Math.random()*500;
        tex.y = Math.random()*200;
        TweenLite.to (tex, 4.25, {x:tex.x+shiftingx, y:tex.y+shiftingy,alpha:.0, ease:Sine.easeInOut,onComplete:this.removeChild});

}

}

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

DaFive 23.10.2012 12:48

Текст ошибки?

Freeman1st 23.10.2012 13:16

Код:

ArgumentError: Error #1063: Argument count mismatch on flash.display::DisplayObjectContainer/removeChild(). Expected 1, got 0.
        at Function/http://adobe.com/AS3/2006/builtin::apply()
        at com.greensock.core::TweenCore/complete()[C:\Users\SLAVIK\Desktop\New Icons\com\greensock\core\TweenCore.as:178]
        at com.greensock::TweenLite/renderTime()[C:\Users\SLAVIK\Desktop\New Icons\com\greensock\TweenLite.as:477]
        at com.greensock.core::SimpleTimeline/renderTime()[C:\Users\SLAVIK\Desktop\New Icons\com\greensock\core\SimpleTimeline.as:93]
        at com.greensock::TweenLite$/updateAll()[C:\Users\SLAVIK\Desktop\New Icons\com\greensock\TweenLite.as:642]


ОИШИБКА НЕ ВОЗНИКАЕТ СРАЗУ, Только после того, как закончиться анимация TweenMax'а

Вот это вылазеет в окне Output

Код:

[SWF] Word%20Overtrow%20v2.1%20(Wordable).swf - 58811 байт после декомпрессии
ArgumentError: Error #1063: Argument count mismatch on flash.display::DisplayObjectContainer/removeChild(). Expected 1, got 0.
        at Function/http://adobe.com/AS3/2006/builtin::apply()
        at com.greensock.core::TweenCore/complete()[C:\Users\SLAVIK\Desktop\New Icons\com\greensock\core\TweenCore.as:178]
        at com.greensock::TweenLite/renderTime()[C:\Users\SLAVIK\Desktop\New Icons\com\greensock\TweenLite.as:477]
        at com.greensock.core::SimpleTimeline/renderTime()[C:\Users\SLAVIK\Desktop\New Icons\com\greensock\core\SimpleTimeline.as:93]
        at com.greensock::TweenLite$/updateAll()[C:\Users\SLAVIK\Desktop\New Icons\com\greensock\TweenLite.as:642]


Hauts 23.10.2012 13:21

Код:

onComplete:this.removeChild
— неправильно. removeChild должен получать ссылку на потомка, добавленного в дисплэйлист. У вас этого не происходит.

Нужно, наверное, вот так:
Код AS3:

TweenLite.to (tex, 4.25, {x:tex.x+shiftingx, y:tex.y+shiftingy,alpha:.0, ease:Sine.easeInOut,onComplete:function(tf:TextField):void{removeChild(tf)}, onCompleteParams:[tex]});

Читайте документацию, раз уж используете твинмакс.

Добавлено через 2 минуты
А еще лучше вынести анонимную функцию на onComplete и объявить ее полноценно.

Код AS3:

function removeAfterAnimation(tf:TextField):void{
    if(this.contains(tf)){
        this.removeChild(tf)
    }
}
 
TweenLite.to(tex, 4.25, {x:tex.x+shiftingx, y:tex.y+shiftingy,alpha:.0, ease:Sine.easeInOut,onComplete:removeAfterAnimation, onCompleteParams:[tex]});



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

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