好的,我是Actionscript 3的新手
我希望我的计时器指示正在玩游戏的人在计时器完成时(00:00)进入“游戏结束”屏幕。目前我收到一条错误,上面写着“1067:将类型类的值隐式强制转换为不相关的类型flash.display:DisplayObject。”
有什么想法吗?
package {
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class SecondCounter extends MovieClip {
private var myTimer:Timer=new Timer(1000,0);
private var secs:Number=10;
private var mins:Number=0;
private var sec_t:String;
private var min_t:String;
var screen7:EndScreen;
public function SecondCounter() {
myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
myTimer.start();
}
private function timerHandler(evt:TimerEvent):void {
if (secs==0) {
if (mins==0) {
addChild(EndScreen);
} else {
mins--;
secs=59;
}
} else {
secs--;
}
if(secs<10){
sec_t = "0"+String(secs)
} else {
sec_t = String(secs);
}
if(mins<10){
min_t = "0"+String(mins) +":"
} else {
min_t = String(mins)+":";
}
secondField.text = min_t + sec_t;
}
}
}
答案 0 :(得分:2)
问题是你试图将类本身添加到屏幕而不是类的实例。
var screen7:EndScreen;
// ....
addChild(EndScreen);
EndScreen是这个类。这是如何创建实际EndScreen对象的蓝图。 Screen7是EndScreen类的一个实例(EndScreen class = blueprint,screen7 instance = actual built house)。
但是你实际上没有实现screen7,所以这样做:
var screen7:EndScreen = new EndScreen();
现在您可以将该实例添加到显示中:
addChild(screen7);