我正在使用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 Tool),而不管我翻过哪一个。
毋庸置疑,我仍然是这一切的初学者。但似乎它们都共享相同的变量:/如何使这些变量对每个创建的对象都是唯一的?
非常感谢!
答案 0 :(得分:2)
这是因为它的类型为static
,因此该值由该类的所有实例共享。删除它,它应该工作。
private var Type:String;