Основной класс VirtualMap3

Код AS3:
package
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import map.EditorXML;
import map.Map;
import map.Toolbar;
public class VirtualMap3 extends Sprite
{
// Переменная, в которой будут храниться загруженные XML-данные
private var dataMap:XML;
// Объект, используемый для загрузки XML-данных
private var urlLoader:URLLoader;
public function VirtualMap3()
{
// Указываем местоположения внешнего источника XML-данных
var urlRequest:URLRequest = new URLRequest("XML/map0.xml");
// Создаем объект, который умеет загружать внешние текстовые данные
urlLoader = new URLLoader();
// Регистрируем обработчик, чтобы событие об окончании загрузки XML-данных
urlLoader.addEventListener(Event.COMPLETE, completeLoad);
// Загружаем XML-данные
urlLoader.load(urlRequest);
}
public function completeLoad(e:Event):void
{
// Присваиваем данные XML переменной
dataMap = new XML(urlLoader.data);
// Добавляем тулбар
var toolbar:Toolbar = new Toolbar(dataMap);
toolbar.displayToolbar();
addChild(toolbar);
// Отображаем карту по первоначальным данным XML
var cell:Map = new Map(dataMap);
cell.displayCell();
addChild(cell);
// Передаем данные из XML файла в XML редактор
var editorXML:EditorXML = new EditorXML(dataMap);
}
}
}
Класс Toolbar, который отображает панель с кнопками

Код AS3:
package map
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class Toolbar extends Sprite
{
private var dataFromXML:XML;
private var editXML:EditorXML;
public function Toolbar(data:XML)
{
this.dataFromXML = data;
this.editXML= new EditorXML(dataFromXML);
}
// Рисуем кнопки
private function addButton(x:uint, y:uint, width:uint, height:uint, name:String):void
{
var button:Sprite = new Sprite();
button.graphics.beginFill(0xFFFFFF, 1.0);
button.graphics.lineStyle(1, 0x000000);
button.graphics.drawRect(x, y, width, height);
button.buttonMode = true;
button.name = name;
addChild(button);
//вешаем событие на кнопки
button.addEventListener(MouseEvent.CLICK, buttonActions);
}
// функция, выполняемая при клике по кнопке
public function buttonActions(e:MouseEvent):void
{
trace(e.target.name);
if(e.target.name == "ADD_LINE")
{
//запускаем метод из класса EditorXML для добавления ячеек(квадратов)
editXML.addLine();
}
}
// Добавляем кнопки в тулбар и рисуем его
public function displayToolbar():void
{
var toolbar:Toolbar = new Toolbar(dataFromXML);
toolbar.addButton(5, 3, 25, 25, "ADD_LINE");
//toolbar.addButton(40, 3, 25, 25, "DEL_LINE");
//toolbar.addButton(75, 3, 25, 25, "ADD_COLUMN");
//toolbar.addButton(110, 3, 25, 25, "DEL_COLUMN");
addChild(toolbar);
}
}
}
Класс map, который отображает ячейки(квадраты)

Код AS3:
package map
{
import flash.display.Sprite;
public class Map extends Sprite
{
private var dataFromXML:XML;
public function Map(data:XML)
{
this.dataFromXML = data;
}
public function displayCell():void
{
var numberCell:uint = dataFromXML..@x.length();
for(var i:int = 0; i < numberCell; i++)
{
var x:uint = dataFromXML..@x[i];
var y:uint = dataFromXML..@y[i];
var sizeCell:uint = dataFromXML.@SIZE;
var cell:Sprite = new Sprite();
cell.graphics.lineStyle(1, 0x000000);
cell.graphics.drawRect(x, y, sizeCell, sizeCell);
addChild(cell);
}
}
}
}
Класс EditorXML для работы с XML

Код AS3:
package map
{
import flash.display.Sprite;
public class EditorXML extends Sprite
{
private var dataFromXML:XML;
private var column:uint;
private var line:uint;
private var sizeCell:uint;
public function EditorXML(data:XML)
{
this.dataFromXML = data;
this.column = dataFromXML.@WIDTH;
this.line = dataFromXML.@HEIGHT;
this.sizeCell = dataFromXML.@SIZE;
}
//Здесь мы меняем файл XML(добавляем в него количество квадратов(ячеек))
public function addLine():void
{
for(var i:int = 0; i < column; i++)
{
dataFromXML.appendChild(<CELL ID={i} x={sizeCell * i} y={line * sizeCell+30} TYPE-CELL="grass6"><OBJECT TYPE-OBJECT="tree"></OBJECT></CELL>);
}
this.line++;
}
}
}
Как я понял, чтобы отобразить новое количество квадратов(ячеек) необходимо удалить то, что уже отображается и заного нарисовать квадраты по новым данным, но вот как их удалять и потом передавать новые данные XML в основной класс я не могу понять.