2013-10-07 49 views
0

在我的Flash AS3的應用程序,我使用最快的方式做外圍裁剪

stage.scaleMode = StageScaleMode.SHOW_ALL; 

因爲圖形我想這是可行的外的開箱各種不同的移動設備。因爲它對設備的屏幕具有「最佳適應性」,並簡單地在其周圍「增加」黑色邊框,所以它很有用。

例如,在4:3個屏幕填滿整個屏幕很好: enter image description here

,而在16:9的屏幕上我得到黑色邊框的左,右: enter image description here

現在,這裏是問題是:當我將顯示對象「移出屏幕」時,我不希望它在這些黑色邊框內呈現。

的問題是:什麼是最快的方法,以「剪輯」我的應用程序 - 考慮到我針對移動設備?我有一種感覺,一個

stage.scrollRect 

將炸燬東西的性能代價...

編輯:我使用<renderMode>gpu</renderMode>

回答

1

scrollRect其實是很大的,甚至讓你的應用程序有更好的表現,除非你使用GPU組成(在這種情況下,它確實會降低性能)。所以我建議你先嚐試一下。

但是一個很好的替代解決方案(像聽起來那麼瘋狂)是隻具有對一切的頂部上有一個洞一個巨大的矩形,你的舞臺的最後一個孩子。所以假設你的舞臺是640x480。你必須對一切有,比方說,1640x1480尺寸頂部的黑色矩形,並與它內部的640×480像素一個洞,讓你的內容是可見的。這是一種廉價的方式來模仿面具,而不會強制重新組合該區域內的像素。

+0

我使用 GPU,所以我想向你推薦去矩形的方式?將矩形作爲一個巨大的位圖或使用矢量圖形,最好是什麼?! –

+0

是啊,如果你使用'然後是scrollRect'一個確實不走。位圖通常會是最好的,但這是一個很大的問題,並且可能會使用太多的內存。我會首先嚐試一個形狀,如果性能受到影響,請使用較小的位圖(例如,164x148,其中有一個64x48的孔)放大(本例中爲10x)並平滑化。渲染將盡可能快,但內存使用會更小。 – zeh