开发者

AS3 - nulling elements within a Vector structure

I'm using a Vector structure in ActionScript 3 to store references to a custom class. My Vector is fixed length for performance reasons, and also because it needs to map 1:1 to another data structure.

I'm trying to figure out how I "remove" an element from this fixed list. I don't want the length of the Vector to change, I just want the value of that element to be "null". Or more specifically, when I test for the truth of that element (eg: if (myVector[index]) { // do something... }), I want that test to fail for that element, since it's "empty".

So naturally, I'v开发者_如何学运维e tried:

myVector[index] = null;

but that throws a TypeError, as does

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

So what's the process for "emptying" an element of a Vector?


There must be something wrong with your index variable because

myVector[0] = null;

does not throw a TypeError when I try that. Is index an int or uint?


if you're receiving:

TypeError: Error #1009: Cannot access a property or method of a null object reference

than you probably haven't added your class to the object you are trying to manage (IE: you haven't added your Display objects to the stage that you are trying to nullify)

posting more code could help, but something like the following should work for you:

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]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜