在您的导入中尝试添加 lv1.as 文件,看看它是否有助于消除该空错误。
import flash.events.*;
import flash.display.*;
import lv1; //imports the lv1.as file
public class TankDrive extends MovieClip
{
public var lev1:lv1;
public function TankDrive()
{
lev1 = new lv1();
lev1.x = 0;
lev1.y = 0;
addChild(lev1);
}
}
编辑两个------------重新阅读评论后------------
其他类中的空行是 stage.addEventListener(KeyboardEvent.KEY_DOWN, keypush);... 我确实有 public function keypush(event:KeyboardEvent):void { } 在里面...
摆脱stage.
并且只拥有TankDrive 中addEventListener(KeyboardEvent.KEY_DOWN, keypush);
的行addChild(lev1);
已经为 lv1 的内容提供了一些访问阶段的权限,因此在 lv1 中只需编写 addChild 就足够了。
注意:对于大多数事件监听器(鼠标/计时器等)和显示对象都是如此。当您需要显式访问舞台时(尤其是对于舞台+键盘侦听器),您必须像这样设置您的 lv1.as:
- 添加一个侦听器以检查该阶段何时可用于 lv1 内容。
如果可用,则让整个舞台聆听键盘控制。
public function lv1() {
addEventListener(Event.ADDED_TO_STAGE, stageAvailable);
//Your other code here...
}
private function stageAvailable(e:Event):void {
trace("(LV1.AS): ADDED_TO_STAGE was successful");
removeEventListener(Event.ADDED_TO_STAGE, stageAvailable);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keypush);
//Your other keyboard listeners code...
}