0

アニメーションにメソッドを使用spritext()し、メソッドを使用してスプライトシートのメモリを解放しようとしましたdispose()が、エラーが表示されます。

スプライトシートのメモリを解放するには?

   local spritext = require("spritext")
   local arr      = {"images/rainbow2.png","images/rainbow1.png"}   

   local myAnim   = spritext.newAnim(arr[1], 600,350, 1, 15);
         myAnim.x = display.contentWidth/2;
         myAnim.y = display.contentHeight/2 -70;
         r:insert(myAnim);

   myAnim:play{ startFrame=1, endFrame=15, loop=1 }

   local function cleanUp()
       myAnim:dispose();
   end
4

1 に答える 1

2

SpriteSheetのAPIを使用していますか?object:disposeは廃止されたと思います。

これを使用する新しい方法はSpriteObjectを介したものであり、DisplayObjectAPIから継承します。 http://docs.coronalabs.com/api/type/SpriteObject/index.html-SpriteObject _

DisplayObject APIからobject:removeSelfを呼び出すことができるはずです。http://docs.coronalabs.com/api/type/DisplayObject/removeSelf.html

これが私のスプライトシートの扱い方の抜粋です。

-- Import sprite sheet
local someSheet = graphics.newImageSheet( "someimages.png", someInfo:getSheet() ) -- ImageSheet.png is the image Texture packer published

-- Set sprite sequence data.
local someSequenceData = {
     { name="dance", frames={8,1,2,3,4,5,4,3,2,1,8}, time=2000, loopCount=1},
     { name="sad", frames={8,9,8}, time=3000, loopCount=1},
     { name="happy", frames={8,5,8}, time=3000, loopCount=1},
     { name="smile", frames={8,10,8}, time=3000, loopCount=1},
     { name="hit", frames={7,8}, time=2000, loopCount=1}
}

-- load sprite object
spriteObject = display.newSprite( someSheet, someSequenceData )
spriteObject.x = display.contentWidth/2
spriteObject.y = display.contentHeight/2

-- play one of the animations
spriteObject:play("dance")

-- to remove the entire sprite object
spriteObject:removeSelf()

簡単なメモ:私のスプライトシートでは、「TexturePacker」と呼ばれるアプリケーションを使用します。いくつかの画像をドロップし、いくつかの設定を設定すると、それに合わせてデータシートとともにパックされたスプライトシートが作成されます。

編集:私はこの質問がかなり古いことに気づいていませんでした..まあ。これがとにかく誰かを助けることを願っています。:P

于 2013-03-05T21:34:37.743 に答える