纹理集是一个将许多小的纹理整合到一张大图中。这个类是用来从一个纹理集中读取纹理。
使用纹理集能为你的纹理解决两个问题:
在一定的时间内,始终有一个纹理处于活动的。每当你改变了处于活动的纹理,一个 “纹理切换”就会执行,这个切换是需要时间的。任何Stage3D纹理的边长都必须是2的幂数。Starling向你隐藏了这个限制,但这将带来 额外的图形存储成本。通过使用纹理集,您可以避免使用纹理切换和取消2的幂数的限制。所有的纹理被集合在一 个“超级纹理”,并且Starling会确保纹理正确的部分被显示出来。
有几种方法来创建纹理集。一种是使用捆绑在Starling的姊妹框架Sparrow framework。里的纹理集生成脚本。 尽管目前这个脚本只能运行在Mac OS X上。 另一个可供选择的出色工具 Texture Packer, 他是一个跨平台的商业软件。
无论您使用的工具是什么,Starling可以支持以下文档格式:
<TextureAtlas imagePath='atlas.png'> <SubTexture name='texture_1' x='0' y='0' width='50' height='50'/> <SubTexture name='texture_2' x='50' y='0' width='20' height='30'/> </TextureAtlas>
如果你的图像在边缘具有透明区域,您可以使用Texture类的frame属性。 通过 去除纹理的透明边缘并且指定原始尺寸就像这样:
<SubTexture name='trimmed' x='0' y='0' height='10' width='10' frameX='-10' frameY='-10' frameWidth='30' frameHeight='30'/>