【发布时间】:2009-09-11 22:29:35
【问题描述】:
我们发现,当我们使用draw 将一个位图数据绘制成另一个位图数据时,缩放变换有一个上限。在某些时候,IBitmapDrawable 参数停止在目标位图上呈现。
有谁知道这个上限的参数是什么?这是否记录在某处?
【问题讨论】:
标签: flash actionscript-3 actionscript
我们发现,当我们使用draw 将一个位图数据绘制成另一个位图数据时,缩放变换有一个上限。在某些时候,IBitmapDrawable 参数停止在目标位图上呈现。
有谁知道这个上限的参数是什么?这是否记录在某处?
【问题讨论】:
标签: flash actionscript-3 actionscript
【讨论】:
注意:在 flash 10 中,该限制已被删除
【讨论】:
实际上这个主题非常棘手...有一些记录的限制,但在不同的场景和 Flash Player 版本中存在许多不同的未记录限制...例如,查看这篇文章及其 cmets: http://www.bit-101.com/blog/?p=2067
如果你允许我引用我自己的话^^
我也遇到过同样的问题,我认为 这不是真正的平局() 限制,但是一个 DisplayObject …… 例如:
var bmp=new BitmapData(8000,100,false,0); var bmp2=new BitmapData(8000,10,false,0xFF0000); bmp.draw(bmp2);完美运行...与其他相同 fillRect 和 applyFilter 等方法。 但是,如果您尝试 draw() 任何超过 4079 像素的 DisplayObject 水平方向,或垂直方向 4082 (根据getColorBoundsRect)。
此外,SO 中有一些类似问题的主题: maximum size of a sprite in as3?
【讨论】:
虽然当 constructed 时 BitmapData 的大小有上限(f9 中为 2880x2880,f10 中总像素区域为 16,775,168),但我们发现在转换 bitmapData 并仅绘制它的一部分时应用的约束略有不同。
如果您的 bitmapData 大小为 1x1px,您可以将其缩放到最大 8191x8191px(比您可以在 f10 中构建的 BitmapData 大得多)并将该位图绘制到另一个位图中。如果您将位图缩放得比这更大,它就不会显示出来。
【讨论】: