我開發了一個Flex/Starling遊戲,我希望使用Atlas Texture來優化所有的sprite調用。 我的問題是,我使用一個清晰和簡單的代碼,與基本資源,我不能運行,我得到一個參數錯誤,紋理不能爲空。 據我所知,.getTexture方法發現什麼,但我沒有看到如何解決這個問題,我的代碼:Starling,Atlas紋理「紋理不能爲空」
[Embed(source = "Atlas_bg/AtlasBackground.xml")]
public var AtlasXml:Class
[Embed(source = "Atlas_bg/AtlasBackground.png")]
public var AtlasPng:Class
// create atlas
var texture:Texture = Texture.fromBitmap(new AtlasPng());
var xml:XML = XML(new AtlasXml());
var atlas:TextureAtlas = new TextureAtlas(texture, xml);
// display a sub-texture
var objsTexture:Texture = atlas.getTexture("star_0");// ne trouve rien
var objsImage:Image = new Image(objsTexture);
addChildAt(objsImage, 0.6);
objsImage.x = 200;
objsImage.y = 200;
XML內容:
<TextureAtlas imagePath="AtlasBackground.png">
<SubTexture name="star_0" x="2" y="2" width="20" height="20"/>
<SubTexture name="star_1" x="2" y="24" width="20" height="20"/>
</TextureAtlas>
THX。
是的,這很奇怪(可能是一個錯字),但它不是錯誤的來源。 addChildAt需要一個int參數,以便傳遞給它的數字被截斷爲其整數部分(在本例中爲0),它應該可以工作。 – danii