Flash 如何将多个bitmapData对象合并为一个对象,以便可以使用PNGEncoder对其进行编码?
我正在创建一个程序,它实际上是一个精灵创造者。我对AS3非常陌生,但我知道JQuery、JS、PHP等。在经历了选择片段以自定义角色的多个步骤后,您应该能够使用fileReference()下载最终产品。一切正常,最终我可以下载图像,但问题是我不能在舞台上拍摄所有的几部电影,我只能拍摄一部。也许这有助于澄清:Flash 如何将多个bitmapData对象合并为一个对象,以便可以使用PNGEncoder对其进行编码?,flash,actionscript-3,merge,bitmapdata,Flash,Actionscript 3,Merge,Bitmapdata,我正在创建一个程序,它实际上是一个精灵创造者。我对AS3非常陌生,但我知道JQuery、JS、PHP等。在经历了选择片段以自定义角色的多个步骤后,您应该能够使用fileReference()下载最终产品。一切正常,最终我可以下载图像,但问题是我不能在舞台上拍摄所有的几部电影,我只能拍摄一部。也许这有助于澄清: // add listener to the download button dl_b.addEventListener(MouseEvent.CLICK, save_emote);
// add listener to the download button
dl_b.addEventListener(MouseEvent.CLICK, save_emote);
function save_emote(e:MouseEvent):void{
var bData:BitmapData = new BitmapData(50, 50);
var bData_eyes:BitmapData = new BitmapData(50, 50);
bData.draw(emptyMC_mc);
bData_eyes.draw(emptyMC_eyes);
// none of these worked, so they have been commented out
//bData.draw(emptyMC_a);
//bData.draw(emptyMC_mouth);
//bData.draw(emptyMC_hand_l);
//bData.draw(emptyMC_hand_r);
// possible to use two bitmapDatas to merge into single?
var byteArray:ByteArray = PNGEncoder.encode(bData);
var fileReference:FileReference = new FileReference();
fileReference.save(byteArray, 'myEmote.png');
replay_b.visible = true;
upload_b.visible = true;
back_b.visible = false;
user_color.clear();
user_eyes.clear();
user_mouth.clear();
user_a.clear();
hand_l.clear();
hand_r.clear();
mouth_coords.clear();
eye_coords.clear();
}
我真的不知道怎样才能让它工作。我尝试过使用.merge()方法,几天来我一直在用谷歌搜索,我试图通过创建两个单独的bitmapData对象,然后在另一个对象中绘制一个来合并它们。对我来说什么都不管用
如果您想查看该程序,并通过单击该程序到达保存图像的位置,可以在此处尝试:
如果在最后保存图像,您将看到手头的问题。我还没有找到一个好的答案,所以如果有人能帮忙,我将不胜感激
提前谢谢
编辑:下面是我如何使用精灵作为容器来设置它的,但现在它似乎正在保存一个空白画布
var emote:Sprite = new Sprite();
emote.addChild(emptyMC_mc);
emote.addChild(emptyMC_eyes);
emote.addChild(emptyMC_hand_l);
emote.addChild(emptyMC_hand_r);
emote.addChild(emptyMC_mouth);
if(user_a.data.accessory != "none"){
emote.addChild(emptyMC_a);
}
var bData:BitmapData = new BitmapData(80, 80);
bData.draw(emote);
我给《精灵》添加的每一部电影都有自己的孩子吗 如果将位图放入某种显示对象容器(如精灵)中,以后可以使用“绘制”和/或“复制像素”方法获取容器的位图数据,这将使所有子对象保留在适当的位置。这应该可以满足您的需要。嗨!谢谢你的回答。我在save_emote函数中添加了一个精灵,并尝试将舞台上的MCs作为孩子连接到它,但出于某种原因,它现在似乎正在保存一张空白画布。我用new Sprite()设置它,然后bitmapData对象使用.draw(Sprite)。你建议我怎么做?我用新的代码编辑了我的第一个问题。好的,把它擦掉。我是通过把movieclips的孩子和精灵联系在一起的。现在它将它们保存在一个PNG中,我只需要找出如何使它们的位置正确。谢谢你的帮助!