【问题标题】:AS3 Rasterizing Movie Clip into Sprite for PrintingAS3 将影片剪辑光栅化为 Sprite 以进行打印
【发布时间】:2013-02-05 21:13:33
【问题描述】:

我目前在打印多页文档时遇到了令人沮丧的问题。基本上我在舞台上有一个影片剪辑 (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;
}

提前谢谢,这对我来说是一个巨大的痛苦。

【问题讨论】:

  • addPage 被点击时,您是否有不能实例化一个新的PrintArea 的原因,从舞台中删除现有的并在multiPages 中存储对它的引用?

标签: actionscript-3 printing


【解决方案1】:

不要过于复杂。
您没有缩放,所以不要打开捕捉或平滑,因为这会扭曲图像并降低质量。
将“图像/BMD”存储在您的阵列中,以便在打印时参考它。 存储超过 BMD 是浪费内存。

function doMyPrinting( ):void{
  for each( var item:BitmapData in multiPages){
    var page:Sprite = new Sprite();
    page.addChild(new Bitmap(item));
    printJob.addPage(page);
  }
}





multiPages.push(duplicateMC(printArea));
function duplicateMC(mc):void
{
    var tempImg:BitmapData = new BitmapData(mc.width,mc.height);
    tempImg.draw(mc);
    multiPages.push(tempImg);
}

【讨论】:

  • 感谢您的帮助,尽管质量仍然很差(例如,数据网格文本变得模糊和伪影-y)。当您说关闭捕捉和平滑时,您指的是 PrintJobOptions 吗?我将 printAsBitmap 属性设置为 false(设置为 true 时打印空白),并且我的打印机首选项中的所有平滑/缩放设置都已关闭。知道是什么原因造成的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 1970-01-01
  • 2011-08-21
相关资源
最近更新 更多