我有三个班级:Main、Player 和 Car。
主程序创建了一个 Car 和一个 Player。Car 需要追踪玩家的 x 位置。但是下面的代码不起作用。我已经研究并发现将其声明为静态应该可以解决问题,尽管这不是最好的方法吗?
主要的:
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
public class Main extends MovieClip
{
public static var _player:Player;
public static var _car:Car;
public function Main()
{
createPlayer();
}
public function createPlayer():void
{
_player= new Player();
_car = new Car();
_player.x = stage.stageWidth / 2;
_player.y = stage.stageHeight / 2;
stage.addChild(_player);
stage.addChild(_car);
}
}
}
车:
package {
import flash.display.MovieClip;
import Main;
public class Player extends MovieClip
{
public function Player()
{
trace(Main._car.x);
}
}
}
但这会导致错误:TypeError:错误#1009:无法访问空对象引用的属性或方法。在 Player() 在 Main/createPlayer() 在 Main()
我想知道为什么这给了我一个错误,还有什么其他的好方法可以做到这一点?
//编辑:对不起 _hero 是我的错误,它实际上是 _car。非常感谢您...........