Форум 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=163296)

Sweet07 07.08.2011 22:46

Запуск функции по истечении события tween
 
Что не так с этой записью?

Код AS3:

bar.addEventListener(MouseEvent.MOUSE_OVER, tween);
 
function tween (e:MouseEvent):void{
        bar.addEventListener(MouseEvent.CLICK, tweenin);
}
 
function tweenin (e:MouseEvent):void{
        bar.addEventListener(Event.ENTER_FRAME, moveBox);
        var MousePos:Number = mouseY;
        var ms:Tween = new Tween(scrollHandle, "y", None.easeOut,scrollHandle.y, MousePos ,1,true);
        ms.addEventListener(TweenEvent.MOTION_FINISH, stoptween);
}
 
function stoptween(e:MouseEvent):void{
        bar.removeEventListener(MouseEvent.CLICK, tweenin);
        bar.removeEventListener(Event.ENTER_FRAME, moveBox);
}
 
function moveBoxP1(e:Event):void {
        IPRT1.y = 38-(scrollHandleP1.y - 200)/2;
}


dimarik 07.08.2011 22:52

Предположу, что объект Tween успевает съесть GC. Представьте ms как поле класса.

СлаваRa 07.08.2011 22:52

почему так? когда TweenEvent
Код AS1/AS2:

e:MouseEvent


Sweet07 07.08.2011 22:56

Я разобрался:
Код AS3:

function tweenin (e:MouseEvent):void{
        bar.addEventListener(Event.ENTER_FRAME, moveBox);
        var MousePos:Number = mouseY;
        var ms:Tween = new Tween(scrollHandle, "y", None.easeOut,scrollHandle.y, MousePos ,1,true);
        if (MousePos == scrollHandle.y) {
bar.removeEventListener(MouseEvent.CLICK, tweenin);
bar.removeEventListener(Event.ENTER_FRAME, moveBox);
}


dimarik 07.08.2011 23:10

Цитата:

Сообщение от СлаваRa (Сообщение 1019030)
почему так? когда TweenEvent
Код AS1/AS2:

e:MouseEvent


Потому что это уже RTE ошибка. А он не получал таковой. Просто не срабатывал этот хэндлер.

СлаваRa 07.08.2011 23:22

ну и в заключение, я бы советовал Вам не использовать родной Tween

dimarik 07.08.2011 23:43

почему?

СлаваRa 07.08.2011 23:53

как минимум
Цитата:

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

in4core 08.08.2011 03:00

Цитата:

ну и в заключение, я бы советовал Вам не использовать родной Tween
Мда, а по вашему TweenMax и прочие либы какой твин юзают? НЕ стандартный ли? Просто оптимизированный))

СлаваRa 08.08.2011 03:40

Поясните пожалуйста.


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

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