class扩展了MovieClip,根据buttonstate设置alpha

时间:2011-12-12 20:49:04

标签: actionscript-3 movieclip extends

我使用AS3只用了4个月来完成我的新工作......我需要对几件设备进行大量的仿真/模拟。用于教学目的的实际设备的视觉(种类)工作示例。

现在,我有点了解有关子类继承等的类。我想我觉得我做得很好......

问题:

我有一个扩展MovieClip的子类。 每个Movieclip代表按钮的活动状态 我设法默认将buttonMode设置为true,将alpha设置为0(我知道,这太棒了),我不知道的是我是怎么做的可以创建自定义属性,如buttonState

我需要将buttonState设置为1,以便alpha变为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 个答案:

答案 0 :(得分:2)

使用setter函数:

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语句,则不必将按钮的alpha值直接绑定到buttonState变量:

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

此外,如果您使用String常量而不是int来指定按钮状态,您将获得更易读的代码和更详细的跟踪输出。