2013-06-25 110 views
2

我遇到問題,性能爲Sprite.setChildIndex。 我必須展示一個由許多小圖片組成的世界。 (大約10.000)Starling SetChildIndex性能問題

爲了獲得最佳性能,我使用了一個圖像池,並且所有圖像都是顯示在一個Sprite的列表中的,因此我不必添加和刪除圖像。

如果我想顯示一個新的世界地區,我只需要將圖像移動到新的位置。這個過程非常快,大約需要6毫秒。

但問題是,顯示列表中圖像的順序對我很重要。 因此,我必須使用setChildIndex重新排列圖像。在顯示List(setChildIndex)中將圖像設置到正確位置的過程對性能有很深的影響,所以我需要大約60 ms來顯示新的Region。 你有一個想法如何優化過程或者是否有替代setChildIndex方法?

回答

0

您可以爲世界的每個區域分配自己的容器,並將該容器放入世界容器中。這樣,你可以通過一組500個圖像而不是10,000來設置ChildIndex或swapChildren。而且,如果你想加載一個新的區域,你可以在整個區域容器上(在世界容器內)設置ChildIndex。這將優化地圖加載,而不是必須關注所有10,000個精靈。