Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   проблема с enabled, возврат нажатие кнопки по условию (http://www.flasher.ru/forum/showthread.php?t=140351)

Зубило 27.05.2010 11:40

проблема с enabled, возврат нажатие кнопки по условию
 
Здравствуйте!:bye:
Ответьте вот на такой вопрос-как создать условие например если какой-то мувиклип имеет _Alpha>0 то кнопка неактивна, а если этот мувиклип стал _alpha=0 то кнопка сразу стала активной?Надеюсь вы поняли мой бред:p

mooncar 27.05.2010 12:11

Код AS1/AS2:

btn.enabled!mc._alpha ;

Этого достаточно.

По поводу "сразу".
Если надо непрерывно отслеживать, то поместите эту строку в onEnterFrame или в функцию под setInterval -ом.
Например так:
Код AS1/AS2:

mc.onEnterFrame = function  () {
        btn.enabled =  !this._alpha ;
};


Зубило 27.05.2010 13:13

Вложений: 1
Не мог бы ты сам посмотреть что там не так!?

mooncar 27.05.2010 13:27

Код AS1/AS2:

smoke.onEnterFrame = function  () {
        but.enabled =  !this._alpha>0;
};

Зачем эта конструкция у вас в onRelease прописана?

А что вы хотите, собственно? Развернуто напишите.

Зубило 27.05.2010 13:32

mooncar при удержании в нажатом состоянии кнопки,идет дым,а при отпускании дым начинает становится прозрачным,так вот я хочу чтобы когда отпущу кнопку и алфа(мувика)>0 кнопка была неактивна,и как только мувик стал полностью прозрачным кнопка опять стала активной!:)

mooncar 27.05.2010 13:55

Код AS1/AS2:

import mx.transitions.Tween;
var ea:Number = 0; //конечная альфа
var t:Number = 2; //время на затухание
 
but.onRelease = but.onReleaseOutside = function()
{       
        this.enabled = false ;
        this.useHandCursor = false ; //чтобы "неактивность" была очевидна юзеру
        var tw:Tween = new Tween(smoke, '_alpha', mx.transitions.easing.None.easeNone, smoke._alpha, ea, t, true);
        tw.onMotionFinished  = twEnd; //определяем событие по завершению уменьшения альфы до 0
};
 
but.onPress = function()
{       
        smoke.gotoAndPlay(1);
        smoke._alpha = 100;
        smoke._x = 251;
        smoke._y = 180
};
 
function twEnd()
{
        but.enabled = true ;
        but.useHandCursor = true ;
}


Зубило 27.05.2010 14:48

Ваш код ругается:o

mooncar 27.05.2010 14:53

Вложений: 1
В следующий раз пишите, как именно "ругается".
Обычно там еще слова какие-то бывают :rtfm:

Зубило 27.05.2010 16:21

:)
Код:

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 10: There is no property with the name 'onMotionFinished'.
            tw.onMotionFinished  = twEnd; //определяем событие по завершению уменьшения альфы до 0

Total ActionScript Errors: 1          Reported Errors: 1

Кстати у меня AS2 ,ваш неподдерживает:(

mooncar 27.05.2010 16:29

Тогда так попробуйте, без класса Tween:
Код AS1/AS2:

but.onPress = function()
{
        smoke.gotoAndPlay(1);
        smoke._alpha = 100;
        smoke._x = 251;
        smoke._y = 180
};
 
but.onRelease = but.onReleaseOutside = function()
{
        this.useHandCursor = false ;               
        this.enabled = false ;
        smoke.onEnterFrame = smokeHide;
};
 
function smokeHide()
{
        if (this._alpha > 0)
        {
                this._alpha -= 5;
        }
        else
        {
                delete this.onEnterFrame ;
                but.enabled = true ;
                but.useHandCursor = true ;               
        }
}



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

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