当我的变量达到数字94时,我没有被重定向到帧“2”。有什么建议吗?
import flash.events.Event;
stop();
//addEventListener(Event.ENTER_FRAME,cakeShow);
var cakeSize:Number = 100;
cakeButton.addEventListener(MouseEvent.CLICK,decCake);
function decCake(event:MouseEvent):void {
cakeSize--;
cake.text = String (cakeSize);
}
cake.text = String(cakeSize);
if (cakeSize==94) {
gotoAndStop("two");
}
答案 0 :(得分:1)
您只需检查一次变量,每次发生某事时都应该这样做。所以,你必须更新你的功能。
function decCake(event:MouseEvent):void {
cakeSize--;
cake.text = String (cakeSize);
if (cakeSize==94) {
gotoAndStop("two");
}
}
更新:看到您需要不断监控变量,您需要将其声明为属性。
private var _cakeSize:int;
public function get cakeSize():int {return _cakeSize;}
public function set cakeSize(value:int):void {
_cakeSize=value;
if (_cakeSize==94) {
gotoAndStop("two");
}
}
这样每次需要为变量设置值时都会调用“set”函数(也称为“setter”),每次检查其值时都会调用“get”函数(也称为“getter”)。所以你让那个cakeSize--;
保持不变,但实际上Flash会首先调用getter,获取其返回值,递减它并使用新值调用setter。注意,如果需要一次或在某些条件下进行“两次”框架而不是每次都为cakeSize指定值94,则必须为setter函数提供特殊行为。
答案 1 :(得分:1)
也许你正在寻找一个timer,以防你还没有跑步。
var timer:Timer = new Timer(1000,0);
timer.addEventListener(TimerEvent.TIMER,update,false,0,true);
timer.start();
function update(e) {
if (cakeSize==94) { timer=null; gotoAndStop("two");}
}