AS3 - Vector结构中的归零元素

时间:2011-02-22 03:22:33

标签: actionscript-3 vector null structure

我在ActionScript 3中使用Vector结构来存储对自定义类的引用。出于性能原因,我的Vector是固定长度的,也因为它需要将1:1映射到另一个数据结构。

我正在试图弄清楚如何从这个固定列表中“删除”一个元素。我不希望Vector的长度发生变化,我只希望该元素的值为“null”。或者更具体地说,当我测试该元素的真实性时(例如:if(myVector [index]){//做某事......}),我希望该元素的测试失败,因为它是“空的”。

很自然地,我尝试过:

myVector[index] = null;

但是会抛出TypeError,就像

一样
myVector[index] = Vector.<MyClass>([]);

那么“清空”Vector元素的过程是什么?

2 个答案:

答案 0 :(得分:1)

如果你收到:

  

TypeError:错误#1009:无法访问   null对象的属性或方法   参考

比你可能没有将你的类添加到你想要管理的对象(IE:你还没有将你的Display对象添加到你试图取消的舞台)

发布更多代码可能有所帮助,但以下内容应该对您有用:

var spriteA:Sprite = new Sprite();
var spriteB:Sprite = new Sprite();
var spriteC:Sprite = new Sprite();

var spritesVector:Vector.<Sprite> = new <Sprite>[spriteA, spriteB, spriteC];
spritesVector.fixed = true;
trace(spritesVector); //[object Sprite],[object Sprite],[object Sprite]

spritesVector[1] = null;
trace(spritesVector); //[object Sprite],null,[object Sprite]

答案 1 :(得分:1)

index变量一定有问题,因为

myVector[0] = null;
我尝试时,

不会抛出TypeError。 index是int还是uint?