以下代码不是因为某种原因将lv1添加到舞台上,这是舞台类并附加到舞台上,两个类都是正确的(三重检查......)并且没有生成错误... < / p>
package
{
import flash.events.*;
import flash.display.*;
public class TankDrive extends MovieClip
{
public var lev1:lv1;
public function TankDrive()
{
lev1 = new lv1();
lev1.x = 0;
lev1.y = 0;
addChild(lev1);
}
}
}
此外,我检查了其他有效的代码,发现其他特定变量名称没有差异,我检查了四倍......
答案 0 :(得分:0)
在你的导入中尝试添加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 {} in it ...
摆脱stage.
,只有addEventListener(KeyboardEvent.KEY_DOWN, keypush);
TankDrive中的行addChild(lev1);
已经为lv1提供了一些访问阶段的内容,所以在lv1中只需编写addChild即可。
注意:对于大多数eventListeners(鼠标/定时器等)以及显示对象都是如此。 当您需要显式访问舞台(特别是舞台+键盘监听器)时,您必须像这样设置lv1.as:
如果可用,则进入整个舞台以监听键盘控制。
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...
}
答案 1 :(得分:0)
您必须从DisplayObject或从DisplayObject继承的任何类(例如Sprite,MovieClip等)继承lev1类。 addChild方法只接受DisplayObject实例。