apache-flex - 在图像中显示巨大的可滚动图像?

标签 apache-flex flash actionscript-3 image

我正在尝试显示大于可用显示区域的图像文件(jpg、png、gif)。我在 cCanvas 中嵌入了一个图像(以进行滚动),但大图像没有完全显示。

非常大的图像(例如 2480 x 3507)的顶部或顶部和底部会随着滚动图像而被剪裁。

使用 mx.controls.Image 可以显示的最大图形是多少?

谢谢

最佳答案

BitmapDatas 有 2880 像素的限制,DisplayObjects 有 8191 像素的限制。 您可以使用此处提供的 BitmapDataUnlimited 类绕过这些限制:http://code.google.com/p/bitmapdataunlimited/

但是,如果性能很重要,我建议让如此大的图像由多个较小的图像组成。即使您不重用这些较小的,或者不注意将它们从 displayList 中删除,或者将它们的 visible-property 设置为 false,仍然会有性能提升,因为 flash 会自动检测到它们在舞台之外并且不必被渲染。

编辑:

我忘了说 2880px 的限制仅适用于手动创建 BitmapDatas,大于该大小的图像仍然可以加载,并且可以访问和操作它们的 BitmapDatas(大于 2880px)。 您可以轻松地拥有一个具有与视口(viewport)一样大的 bitmapData 的位图,然后您可以通过执行以下操作来设置它的 bitmapData:

viewportBitmapData.copyPixels(sourceBitmapData, new Rectangle(x,y,viewportWidth, viewPortHeight), new Point(0,0))

滚动时,您可以简单地在每一帧上执行上述操作 或者如果性能很重要,您可以在滚动时(如果 scrollingDistance 小于 viewportSize)使用 viewportBitmapData.scroll(x,y) 移动整个 bitmapData,然后仅复制新像素。

关于apache-flex - 在图像中显示巨大的可滚动图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1210147/

相关文章:

flash - 修剪透明 PNG 周围的空白

javascript - jquery或javascript是否有类似(flash中的onEnterFrame)的功能

javascript - 带有自定义 URL 的 facebook "apprequests"?

actionscript-3 - 在 Flash 中的组件的 ActionScript 3 中使用动态数组填充可检查列表

apache-flex - 将 flex 与 strut 一起使用

C# 阻止 webbrowser 控件加载图像、flash、脚本等

.net - WebOrb - 将对象序列化为字符串

c# - .NET zlib Stream 兼容 Actionscript ByteArray.uncompress

apache-flex - 使用多个模块时优化 Flex

css - Flex4 外部样式表 PropertyReference