Actionscript 3 movieclip将其发送到另一帧

Actionscript 3 movieclip将其发送到另一帧,actionscript-3,Actionscript 3,我制作了一个彩色游戏,我想制作它,这样你就可以保存这幅画(一个电影剪辑)并将它发送到另一个帧或场景。我一直在研究这是如何可能的,看起来它可以用bitmapdata完成,但我甚至不知道如何去做 您需要命名保存按钮,并向其添加一个单击侦听器 // create the BitmapData that you'll be drawing to, give it the same dimensions var savedImage:BitmapData = new BitmapData(holder.

我制作了一个彩色游戏,我想制作它,这样你就可以保存这幅画(一个电影剪辑)并将它发送到另一个帧或场景。我一直在研究这是如何可能的,看起来它可以用bitmapdata完成,但我甚至不知道如何去做

您需要命名保存按钮,并向其添加一个单击侦听器

// create the BitmapData that you'll be drawing to, give it the same dimensions 
var savedImage:BitmapData = new BitmapData(holder.width, holder.height, false, 0xFFFFFF);

// add a click listener to your save button
saveBtn.addEventListener(MouseEvent.CLICK, onSave);
function onSave(event:MouseEvent):void 
{
    // need to apply a transformation matrix because holder's origin is centered
    var matrix:Matrix = new Matrix();
    matrix.translate(holder.width * .5, holder.height * .5);

    // clear out any existing image on savedImage
    savedImage.fillRect(savedImage.rect, 0xFFFFFF);

    // draw the holder onto the savedImage bitmapdata, using the transform matrix
    savedImage.draw(holder, matrix, null, null, null, true);
}
从那里开始,您可以将
savedImage
BitmapData
传递给
位图
实例:

var savedBitmap:Bitmap = new Bitmap(savedImage);
只要
savedBitmap
在正确的范围内,您就可以将其添加到另一帧的显示列表中:

addChild(savedBitmap);

如果BitmapData不透明:BitmapData(holder.width、holder.height、false、0xFFFFFFFF),则没有可用的alpha位,并且其中的额外alpha位与此无关:0xFFFFFFFF。它应该是0xFFFFFF。这是非常相关的,因为在代码行中出现alpha位意味着alpha位在不可用时可用(实例化+fillRect)。它可以工作!!谢谢你能举例说明我想理解的代码savedimage.draw(holder,matrix,null,null,null,true);我不了解Nizray,请参考
BitmapData.draw
的文档以了解该方法的所有参数:不确定为什么一个无关(但无害)的alpha位会保证向下投票,但是_(ツ)_/“我对答案进行了编辑,以防它可能会让其他偶然发现这一点的人感到困惑。