0

I have a setter for a vector that works properly, but I'm trying to make it do some additional things when one of the elements is changed.

private var _myVect:Vector.<int> = new <int>[0,0,0,0];

public function set myVect(newVect:Vector.<int>):void {
    trace(newVect);
    _myVect = newVect;
}

If I do myVect[0] = 1, then _myVect becomes [1,0,0,0] but it doesn't even trace. How can I get the element number and assigned value from inside the setter?

4

1 回答 1

0

它不会跟踪,因为在使用“myVector[0] =”时,您实际上是在使用 getter,而不是 setter(您 GET 向量然后设置它的一个值)。

我只会实现一个吸气剂。

而不是 myVect[0] = 1 你应该做 _myVect[0] = 1 或者像这样实现一个公共方法:

public function updateVectorAt(value:int, index:int):void
{ 
    _myVect[index] = value; 
    // do the other stuff here...
}
于 2013-10-02T14:41:53.863 回答