Ric*_*ven 3 apache-flex flash image actionscript-3
我正在尝试显示可能大于可用显示区域的图像文件(jpg,png,gif).我在cCanvas中嵌入了一个Image(以进行滚动),但是没有完全显示大图像.
非常大的图像(例如2480 x 3507)使用滚动图像剪切图像的顶部或顶部和底部.
使用mx.controls.Image可以显示的最大图形是什么?
谢谢
对于BitmapDatas,2880像素限制,对于DisplayObjects,限制为8191像素.您可以使用此处提供的BitmapDataUnlimited类绕过这些限制:http://code.google.com/p/bitmapdataunlimited/
但是,如果性能很重要,我建议让这些大图像由多个较小的图像组成.即使你不重用这些较小的或者将它们从displayList中删除或者将它们的visible-property设置为false,仍然会有性能提升,因为flash会自动检测到它们不在舞台之外而且不必被渲染.
编辑:
我忘了说2880px-limit只适用于手动创建BitmapDatas,大于的图像仍然可以加载,并且可以访问和操作它们的BitmapDatas(大于2880px).您可以轻松地使用与视口一样大的bitmapData的Bitmap,然后您可以通过执行以下操作来设置其bitmapData:
viewportBitmapData.copyPixels(sourceBitmapData, new Rectangle(x,y,viewportWidth, viewPortHeight), new Point(0,0))
Run Code Online (Sandbox Code Playgroud)
滚动时,您可以在每个帧上执行上述操作或者如果性能很重要,则可以在滚动时(如果scrollingDistance小于viewportSize)使用viewportBitmapData.scroll(x,y)移动整个bitmapData,然后仅复制新像素.
| 归档时间: |
|
| 查看次数: |
1106 次 |
| 最近记录: |