我正在尝试显示可能比可用显示区域大的图像文件(jpg,png,gif)。我在cCanvas中嵌入了一个Image(用于滚动),但是没有完全显示大图像。
非常大的图像(例如2480 x 3507)使用滚动图像剪切图像的顶部或顶部和底部。
使用mx.controls.Image可以显示的最大图形是什么?
由于
答案 0 :(得分:5)
对于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))
滚动时,您可以在每个帧上执行上述操作 或者如果性能很重要,则可以在滚动时(如果scrollingDistance小于viewportSize)使用viewportBitmapData.scroll(x,y)移动整个bitmapData,然后仅复制新像素。
答案 1 :(得分:4)
我已经读过Flash 9中每个维度的限制为2880像素。在Flash 10中,限制更高。检查您要编译的版本。
您可能会将图像切成小块并将它们组装成Flex。
答案 2 :(得分:0)
如果您要定位的FlashPlayer有所不同:
版本VS最大位图
flashplayer -9:2880x2880 px
flashplayer 10:4096x4096 px
flashplayer 11:无限制