【问题标题】:Fastest way to do peripheral clipping进行外围裁剪的最快方法
【发布时间】:2013-10-07 21:04:06
【问题描述】:

在我的 Flash AS3 应用程序中,我正在使用

    stage.scaleMode = StageScaleMode.SHOW_ALL;

因为我希望它在各种不同的移动设备中开箱即用。它之所以有效,是因为它“最适合”设备的屏幕,并简单地在其周围“添加”黑色边框。

例如,在 4:3 屏幕中,它可以很好地填满整个屏幕:

在 16:9 屏幕中,我在左右两侧出现黑色边框:

现在的问题是:当我将显示对象“移出屏幕”时,我不希望它呈现在那些黑色边框内。

问题是:考虑到我的目标是移动设备,什么是“剪辑”我的应用程序的最快方法?我有一种感觉

stage.scrollRect

会在性能方面搞砸......

编辑:我正在使用<renderMode>gpu</renderMode>

【问题讨论】:

    标签: android ios actionscript-3 flash air


    【解决方案1】:

    scrollRect 实际上很棒,甚至可以让您的应用程序性能更好,除非您正在使用 GPU 组合(在这种情况下,它确实会降低性能)。所以我建议你先试试。

    但是一个很好的替代解决方案(听起来很疯狂)是在所有东西的顶部有一个带有孔的巨大矩形,作为舞台的最后一个孩子。所以假设你的舞台是 640x480。您将在尺寸为 1640x1480 的所有内容之上放置一个黑色矩形,并在其中有一个 640x480 像素的孔,让您的内容可见。这是一种模拟蒙版的廉价方法,无需强制重新组合该区域内的像素。

    【讨论】:

    • 我确实使用 gpu,所以我想您建议使用矩形方式?最好的办法是将矩形作为一个巨大的位图还是使用矢量图形?!
    • 是的,如果你使用它,那么scrollRect 确实是不行的。位图通常是最好的,但这会很大,并且可能会占用太多内存。我会先尝试一个形状,如果对性能有任何影响,请使用一个较小的位图(例如 164x148 和 64x48 的孔)放大(在本例中为 10 倍)并进行平滑处理。渲染速度一样快,但内存使用量会小得多。
    猜你喜欢
    • 2014-05-12
    • 2015-09-25
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    相关资源
    最近更新 更多