Код ниже представляет собой простую программу добавления и сохранения.Вы нажимаете кнопку addButton, чтобы добавить содержимое на холст, а затем нажимаете кнопку exportButton, чтобы сохранить изображение холста в его текущем состоянии на рабочем столе.Этот код прекрасно работает, когда я добавляю на холст объекты круга, которые рисуются на холсте.Проблема заключается в том, что я пытаюсь загрузить .png в холст.Как только загруженный контент добавляется на холст, exportButton перестает работать все вместе и больше не отвечает.Что заставляет загруженный контент нарушать код?
** Данный пост был отредактирован по состоянию на 30 марта 2012 года. Ниже приведен рабочий код *
public class Application extends MovieClip
{
public var canvas:MovieClip = new MovieClip();
public var addBtn:MovieClip = new MovieClip();
public var exportBtn:MovieClip = new MovieClip();
public var _content:BitmapData;
public function Application()
{
canvas.graphics.beginFill(0x333333);
canvas.graphics.drawRect(0,0,450,450);
canvas.graphics.endFill();
addChild(canvas);
addBtn.graphics.beginFill(0x999999);
addBtn.graphics.drawRect(0,0,50,50);
addBtn.graphics.endFill();
exportBtn.graphics.beginFill(0x999999);
exportBtn.graphics.drawRect(0,0,50,50);
exportBtn.graphics.endFill();
canvas.x = stage.stageWidth / 2 - canvas.width;
addBtn.x = exportBtn.x = canvas.x +(canvas.width +25);
exportBtn.y = addBtn.height + 25;
addBtn.addEventListener(MouseEvent.CLICK, addClick);
exportBtn.addEventListener(MouseEvent.CLICK, exportClick);
addChild(canvas);
addChild(addBtn);
addChild(exportBtn);
}
private function addClick(event:MouseEvent):void
{
var loader:Loader = new Loader();
loader.load(new URLRequest("alphabet/a.png"));
loader.x = Math.random() * canvas.width;
loader.y = Math.random() * canvas.height;
canvas.addChild(loader);
}
private function exportClick(event:MouseEvent):void
{
_content = new BitmapData(canvas.width,canvas.height);
_content.draw(canvas);
saveBitmap();
}
private function saveBitmap():void
{
var encodedContent:ByteArray = PNGEncoder.encode(_content);
var fileWindow:FileReference = new FileReference();
fileWindow.save(encodedContent, "Image_randomly.png");
}
}
}