ActionScript 3.0从数组元素中删除精灵

时间:2016-02-19 23:55:59

标签: arrays actionscript-3 flash object sprite

我有一个as3的问题。如何从数组中删除精灵

    var object:Object;
    var objectArray:Array;
    var objectSprite:Sprite;

    for(...) {
        objectArray.push(object);
    }
    for(...) {
        objectSprite.graphics.drawCircle(objectArray.x, objectArray.y,objectArray.radius);
        addChild(objectSprite);
    }
    if(3 > 2) {
        objectArray.splice(object, 1);
        // how can i remove screen the object sprite and object from array
    }

1 个答案:

答案 0 :(得分:0)

  • 查看手册中的 Array.splice 用法。 x,y其中objectArray.splice( xyz, 1);开始的条目数。为什么要放xyz而不是数字?

  • 在您的第二个for循环中,您可以在制作drawCircle代码之前尝试object,以便每个都是新的并且具有唯一名称。也许这会解决你的“他们都被删除”的问题。要删除,您可以执行以下操作:objectSprite = new Sprite;

如何制作你的For-Loop的例子......

removeChild( container.getChildByName(someName4) );

至于删除尝试下面的东西..

var container : Sprite = new Sprite; //one container for ALL objects
addChild( container); // add to stage

for ( j = 0; j < 10; j++)
{

    objectSprite = new Sprite; //make a new unique one
    objectSprite.name = "myName" + String( j );
    objectSprite.graphics.drawCircle(objectArray.x, objectArray.y,objectArray.radius);
    container.addChild(objectSprite); //add into container

    trace ("new objectSprite - Name is : " +  objectSprite.name);
}

PS:代码在Flash中未经过测试,但可以让您了解如何进行此操作。如果你遇到错误,请停止 - 思考 - 修复它们。

我对这句话感到困惑:
if(3 > 2) { //# Check name to be sure you are removing right one... //# yourNum is order you added (1st= 0, 2nd= 1, 3rd= 2, etc) trace ( "Object to remove is : " + objectArray[ yourNum ].name ); //# How can i remove from screen (stage??) the object sprite //# yourName example is : "someName4" container.removeChild( container.getChildByName("yourName") ); //# And remove object from array? objectArray.splice( yourNum, 1); }
数组只是“项目组”的概念,所以这个列表如何具有 x y 甚至 radius ?等等,别告诉我。不知怎的,它对你有用,所以我会停在那里..