我使用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
,反之亦然。
答案 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来指定按钮状态,您将获得更易读的代码和更详细的跟踪输出。