我的Action Script 3代码存在问题。 我要让用户在spBoard中绘制任何他/她想要的,然后我想让他/她能够将其保存在本地磁盘中。 这是代码,但是这段代码只能保存spBoard而不会被用户淹没。将自定义的Sprite保存为本地磁盘的图像
import com.adobe.images.JPGEncoder;
import com.adobe.images.PNGEncoder;
var lineSize: Number = 7;
var currentColor: Number;
var spBoard: Sprite = new Sprite();
this.addChild(spBoard);
spBoard.x = 280;
spBoard.y = 23;
drawBoard();
var shDrawing: Shape = new Shape();
this.addChild(shDrawing);
shDrawing.x = 280;
shDrawing.y = 23;
var shMask: Shape = new Shape();
this.addChild(shMask);
shMask.x = 280;
shMask.y = 23;
drawMask();
shDrawing.mask = shMask;
var doDraw: Boolean = false;
function drawBoard(): void {
spBoard.graphics.lineStyle(1, 0x000000);
spBoard.graphics.beginFill(0xFFFFFF);
spBoard.graphics.drawRect(0, 0, 250, 250);
spBoard.graphics.endFill();
spBoard.filters = [new DropShadowFilter()];
}
function drawMask(): void {
shMask.graphics.lineStyle(1, 0x000000);
shMask.graphics.beginFill(0xFFFFFF);
shMask.graphics.drawRect(1, 1, 249, 249);
shMask.graphics.endFill();
}
spBoard.addEventListener(MouseEvent.MOUSE_DOWN, boardDown);
spBoard.addEventListener(MouseEvent.MOUSE_UP, boardUp);
function boardDown(e: MouseEvent): void {
var curX: Number = shDrawing.mouseX;
var curY: Number = shDrawing.mouseY;
doDraw = true;
shDrawing.graphics.lineStyle(5, 0x000066);
shDrawing.graphics.lineStyle(lineSize, currentColor);
shDrawing.graphics.moveTo(curX, curY);
}
function boardUp(e: MouseEvent): void {
doDraw = false;
}
spBoard.addEventListener(MouseEvent.MOUSE_MOVE, boardMove);
function boardMove(e: MouseEvent): void {
var curX: Number = shDrawing.mouseX;
var curY: Number = shDrawing.mouseY;
if (doDraw) {
shDrawing.graphics.lineTo(curX, curY);
}
e.updateAfterEvent();
}
save_image.addEventListener(MouseEvent.CLICK, save_image_function);
function save_image_function(event:MouseEvent):void
{
var bmd:BitmapData = new BitmapData(50,50);
bmd.draw(spBoard);
var encorder:PNGEncoder = new PNGEncoder();
var bytes:ByteArray = PNGEncoder.encode(bmd);
var file:FileReference = new FileReference();
file.save(bytes, "Image.png");
}
其更好地留在你的代码的一些意见,并讲述在这个类中使用函数的一些事情,假设它的第一次,我们r看着这行。 –