2016-02-19 2 views
-1

У меня есть вопрос для as3.How я могу удалить спрайт из массиваActionScript 3.0 удалить спрайт из массива элемента

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 
    } 
+0

Поскольку руководство AS3 не говорит вам ??? Попробуйте google для добавления/удаления элементов в массиве, а также для поиска, как ** удалить ** Ребенок на сцене (напротив ** добавить ** ing как Child) ... –

+0

Я ищу, но я не могу найти что-нибудь. I может удалить array.but, я не могу удалить на экран объект спрайта. – akorukmez

+0

'removeChild (objectSprite)' –

ответ

0
  • Проверьте руководство для Array.splice использования. objectArray.splice(xyz, 1);, где xyz - количество записей до начинаются с. Почему вы положили object вместо числа?

  • В вашей второй для цикла вы можете попробовать objectSprite = new Sprite;, прежде чем сделать DrawCircle код т.д., так что каждый один новый и имеет уникальное имя. Возможно, это исправит проблему «все они будут удалены». Для того, чтобы удалить, вы можете просто сделать: removeChild(container.getChildByName(someName4));

Пример того, как ваш For-Loop может быть ...

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); 
} 

Что касается удаления попробовать что-то вроде ниже ..

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); 

} 

PS: код не проверен во Flash, но дает вам представление о том, как это сделать. Если у вас возникнут ошибки, Stop - Think - исправьте их.

Я озадачен этой строкой:
objectSprite.graphics.drawCircle(objectArray.x, objectArray.y,objectArray.radius);.
Массив только идея «группа предметов», так на самом деле, как же этот список имеет х, у и даже радиуса ?? Подожди, не говори мне. Как-то он работает хорошо для вас, поэтому я остановлюсь там.

+0

Большое спасибо. Тогда я могу удалить спрайт и объект на экране. – akorukmez

+0

Вы говорите мне, что это работает нормально или спрашивает меня, будет ли это работать? –

+0

İts работает спасибо и жаль, что я не могу говорить по-английски, потому что я турецкий :) – akorukmez

Смежные вопросы