Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Alpha и tween (http://www.flasher.ru/forum/showthread.php?t=178643)

leff27 26.04.2012 11:07

Alpha и tween
 
Добрый день! Имеется кнопка и функция, переключающая кадр на другой.
Код AS3:

object.btn.addEventListener(MouseEvent.CLICK, btnf);
 
function btnf(e:MouseEvent):void{
        object.btn.alpha = 0.5;
        object.btn.gotoAndPlay(2);
        object.btn.removeEventListener(MouseEvent.CLICK, btnf);
        object.btn.addEventListener(MouseEvent.CLICK, btnf_back);
        }
function btnf_back(e:MouseEvent):void{
        object.btn.alpha = 1;
        object.btn.gotoAndPlay(26);
        object.btn.addEventListener(MouseEvent.CLICK, btnf);
        object.btn.removeEventListener(MouseEvent.CLICK, btnf_back);
}

В таком случае анимация проигрывается ТОЛЬКО при выполнении первой функции, а если нажать вновь на эту же кнопку, то обратной анимации(по функции2) уже не происходит, если же убрать object.btn.alpha = 0.5; и object.btn.alpha = 1; все работает на "ура"!
Что делать? В чем проблема? Могу кинуть в ЛС пример, если не понятно объяснил.

mishgun_ 26.04.2012 11:16

внутри обработчиков событий стоит использовать Event.currentTarget
т.е. не
Код AS3:

object.btn.alpha = 0.5;

а
Код AS3:

e.currentTarget.alpha = 0.5;


leff27 26.04.2012 11:30

А если мне нужно не на текущий объект? А допустим так

Код AS3:

object.btn.addEventListener(MouseEvent.CLICK, btnf);
function btnf(e:MouseEvent):void{
        object.btn.anotherbtn.alpha = 0.5;
        object.btn.gotoAndPlay(2);
        object.btn.removeEventListener(MouseEvent.CLICK, btnf);
        object.btn.addEventListener(MouseEvent.CLICK, btnf_back);
        }
function btnf_back(e:MouseEvent):void{
        object.btn.anotherbtn.alpha = 1;
        object.btn.gotoAndPlay(26);
        object.btn.addEventListener(MouseEvent.CLICK, btnf);
        object.btn.removeEventListener(MouseEvent.CLICK, btnf_back);
}

P.S
Сделал так:

Код AS3:

function btnf(e:MouseEvent):void{
        e.currentTarget.alpha = 0.5;
        object.btn.gotoAndPlay(2);
        object.btn.removeEventListener(MouseEvent.CLICK, btnf);
        object.btn.addEventListener(MouseEvent.CLICK, btnf_back);
        }
function btnf_back(e:MouseEvent):void{
        e.currentTarget.alpha = 1;
        object.btn.gotoAndPlay(26);
        object.btn.addEventListener(MouseEvent.CLICK, btnf);
        object.btn.removeEventListener(MouseEvent.CLICK, btnf_back);
}

Не работает, в первой функции непонятно что делает, а при вызове второй, появляется черное пятно на объекте.

Добавлено через 37 минут
Все разобрался, можно закрывать


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

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