我目前在打印多页文档时遇到了令人沮丧的问题。本质上,我在舞台上有一个影片剪辑 (printArea),其中包含几个元素,包括使用加载器组件加载的图像、数据网格组件和其他一些分类元素。
该影片剪辑充当单个页面的模板;您调整选项,然后单击“添加页面”并再次更改第二页,依此类推。我遇到的问题是将页面添加到稍后使用 addPage() 循环的数组。据我了解,最好将精灵或影片剪辑传递给 addPage。我觉得复制影片剪辑,然后用数据、大小和定位设置重新初始化所有组件完全是矫枉过正。我无法传递影片剪辑本身,因为我需要从一个实例建模的多个页面。有没有办法简单地将影片剪辑栅格化以将其传递给 addPage()?这是我目前找到的唯一解决方案,但打印输出的质量很差:
//So let's say I want to add the movie clip's current state to the array :
multiPages.push(duplicateMC(printArea));
function duplicateMC(mc)
{
var tempImg:BitmapData = new BitmapData(mc.width,mc.height);
tempImg.draw(mc);
var fullImg = new Bitmap(tempImg);
var newImg = DisplayConverter.bitmapToSprite(fullImg,true);
multiPages.push(newImg);
}
//DisplayConverter function in a seperate file (Snagged this online somewhere) :
public static function bitmapToSprite(bitmap:Bitmap, smoothing:Boolean = false):Sprite
{
var sprite:Sprite = new Sprite();
sprite.addChild( new Bitmap(bitmap.bitmapData.clone(), "auto", smoothing));
return sprite;
}
在此先感谢,这对我来说一整天都是一个巨大的痛苦。