класс расширяет MovieClip, установите альфа в соответствии с состоянием кнопок - PullRequest
0 голосов
/ 13 декабря 2011

Я использую AS3 только для 4 месяцев для моей новой работы ... Мне нужно сделать много эмуляций / симуляций для нескольких единиц оборудования. Наглядный (вид) рабочий пример реального оборудования для учебных целей.

Теперь я понимаю классы, связанные с наследованием подклассов и т. Д. Мне нравится думать, что у меня все хорошо ...

Вопрос:

У меня есть подкласс, расширяющий MovieClip. Каждый Movieclip представляет активное состояние кнопки Мне удалось установить buttonMode на true и alpha на 0 по умолчанию (я знаю, это удивительно), но я просто не понимаю, как я могу создать собственное свойство, такое как buttonState.

Мне нужно иметь возможность установить buttonState на 1, чтобы альфа стала 1.

package  
{
import flash.display.MovieClip;

public class TwoStateButton extends MovieClip 
{
    public var buttonState:int;
    public function TwoStateButton(buttonstate) 
    {
        super();

        this.buttonMode = true;
        this.alpha = 0;
        this.buttonState = buttonState;
    }
}
}

Мне нужно, чтобы при установке buttonState на 1, alpha также устанавливалось на 1 и наоборот.

1 Ответ

2 голосов
/ 13 декабря 2011

Используйте функцию установки:

private var _buttonState : int = 0;

public function set buttonState ( n : int ) : void {
    _buttonState = n;
    doStuffWith ( _buttonState ); // <= use another function, or simply set alpha here
}

Конечно, вы можете делать все что угодно с помощью buttonState, но если вы используете такой оператор switch, как этот, вам не нужно привязывать альфа-значение вашей кнопки непосредственно к переменной buttonState:

    switch ( _buttonState ) {
        case 0:
            alpha = 0;
            break;
        case 1:
            alpha = 1;
            break;
        case 2:
            alpha =.5;
            break;
    }

Кроме того, если вы используете константу String вместо int для указания состояния кнопки, вы получите более читаемый код и более подробный вывод трассировки.

...