2013-10-29 99 views
0

我正在使用Actionscript 2(尚未准备好升级,虽然它对问题不敬重),但是我遇到了OOP和类问题。小AS2 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。它应该输出唯一的“类型”字符串,但它总是输出“行”(创建的最后一个类型工具),而不管我翻转哪一个。

不用说,我仍然是所有这些的初学者。但似乎他们都共享相同的变量:/我如何使这些变量独特的每个对象创建?

非常感谢!

回答

2

这是因为它的类型为static,所以该值由该类的所有实例共享。删除它,它应该工作。

private var Type:String; 
+0

你是一个救星! – Tom