gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:10:42 25 4
gpt4 key购买 nike

我正在尝试显示大于可用显示区域的图像文件(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com