我正在使用Actionscript 2(还没有准备好升级,尽管它不尊重这个问题),但是我在OOP和类方面遇到了问题。
我有一个“工具”类,写得像这样:
class com.Tool {
public var self:MovieClip;
private static var Type:String;
function Tool(T:String, X:Number, Y:Number) {
Type = T;
self = _root.createEmptyMovieClip("obj"+_root.getNextHighestDepth(), _root.getNextHighestDepth());
self._x = X;
self._y = Y;
self.width = 36;
self.height = 36;
self.onRollOver = function() {
trace(Type);
}
}
}我在主要脚本中创建了其中的3个,如下所示:
var toolPan:Tool = new Tool("pan", 0, 0);
var toolSquare:Tool = new Tool("square", 0, 38);
var toolLine:Tool = new Tool("line", 0, 76);这一切都很好,除了onRollOver。它应该输出唯一的" Type“字符串,但是它总是输出"line”(最后创建的Type工具),不管我翻了哪一个。
不用说,我仍然是这一切的初学者。但是,它们似乎都在共享同一个变量:/如何使这些变量对创建的每个对象都是唯一的?
非常感谢!
发布于 2013-10-29 19:26:43
因为它是static类型,所以该值由该类的所有实例共享。移开它,它就能工作了。
private var Type:String;https://stackoverflow.com/questions/19659540
复制相似问题