好吧,首先,我已经到处搜索过这个问题,但似乎每个答案都过于复杂或根本不起作用,我确信应该有一种更简单的方法来实现我的需要。
所以,直到今天,我总是在时间线内编码。但现在我意识到为什么我应该在单独的类文件中编码。但是,为了简单起见,我仍然希望在时间线中包含代码片段。
所以在我的Ship类中我有这行代码:
public var speed:int = 2 + Math.ceil(Math.random() * 4)
在我的时间表中,我有代码:
import Ship;
trace(Ship.speed)
我无法获得显示速度的痕迹。类文件自己完美地执行,但是当我尝试访问它的速度变量时(如上面的时间轴),我得到了这个:
场景1,图层'动作',第1帧,第2行1119:通过具有静态类型Class的引用访问可能未定义的属性速度。
这是一个简单的问题,并为此道歉,但有人能给我一个简单的方法来跟踪Ship.as类文件的速度吗?
提前致谢!
答案 0 :(得分:2)
您需要创建一个Ship实例,如下所示:
import Ship;
var ship:Ship = new Ship();
trace(ship.speed);
OR
您可以将速度声明为静态变量,以便在不需要实例的情况下访问它(但我认为这样做不太合理):
public static var speed:int = 2;//or whatever
要了解有关AS3中静态变量和方法的更多信息,请检查此响应:Actionscript 3: Can someone explain to me the concept of static variables and methods?
答案 1 :(得分:0)
在Ship
课程内:
public function get speed():int{
return 2 + Math.ceil(Math.random() * 4);
}
并在时间轴上:
import Ship;
var ship:Ship = new Ship();
trace(ship.speed);