Создание и очистка прямоугольников во Flash CS5 - PullRequest
1 голос
/ 30 ноября 2010

У меня есть XML-документ, который я читаю и рисую кучу прямоугольников из данных, которые я получаю. Этот бит кода вставляется в один кадр. Кнопки используются для навигации по кадрам. Кнопка на главном экране приводит вас к рамке, которая рисует прямоугольники. У меня есть кнопка «Назад» на рамке, которая рисует прямоугольники, которые возвращают вас на главный экран, и это прекрасно работает, но когда я нажимаю кнопку «Назад», прямоугольники, которые я нарисовал, остаются на сцене. В любом случае я могу стереть все прямоугольники одновременно?

Спасибо

Ответы [ 3 ]

1 голос
/ 30 ноября 2010

Определите массив типа DisplayObject и добавьте в него каждый объект (Sprite, Movieclip).

Если вы хотите удалить их, выполните итерацию по массиву и удалите дочерний элемент:

// Adding object to the array
var objArray:Array;    // this could be a field member
objArray = [];

// ... navigate to your XML file and get each entry
// ... after you create an object, add it
if( objArray.indexOf(obj1) < 0 ) // Make sure it is not there so we do not add it twice
    objArray.push(obj1);


// Clearing...
for each (var obj1:DisplayObject in objArray)
{
    obj1.parent.removeChild(obj1);
}

// when done, clear the array
objArray = [];
0 голосов
/ 30 ноября 2010

Это будет зависеть от того, как вы рисуете прямоугольники, если вы используете графический API, вы можете просто сделать:

    this.graphics.clear();

если вы добавляете объекты DisplayObject, выполните:

   while( this.numChildren > 0 )
      this.removeChildAt( 0 );

Конечно, вы можете вызывать эти методы в любом контейнере MovieClip:

     //for instance...
     mc.graphics.clear(); 

     //or
     while( mc.numChildren > 0 )
         mc.removeChildAt( 0 );
0 голосов
/ 30 ноября 2010

, если вы хотите удалить все в текущем кадре:

function disposeFrameContent() : void
{
    while(numChildren)
        removeChildAt(0);
}

// run this code before you change frame
disposeFrameContent();
...