Displaying only one frame/image from a sprite

I’ve a sprite with around 300 frames of size 40x20.

These frames are related (e.g. different type of coffee drinks) but are not animation, I want to pick one frame/image and display it on one screen, then display another frame on different screen or display two frames on the same screen.

local sheet = sprite.newSpriteSheet(“coffeetypes.png”, 40, 20)
function getFrame(frameNumber)
local spriteSet = sprite.newSpriteSet(sheet, frameNumber, 1)
sprite.add(spriteSet,“coffeedrink”,1, 1, 1000, 1)
return sprite.newSprite(spriteSet)
end

function displayFrame(frame)
frame:prepare(“coffeedrink”)
frame:play()
end

1> I want to display only one frame from the sprite. Is this solution correct? Or there is a better way of doing it.
local f = getFrame(1)
displayFrame(f)

2> I want to avoid loading and unloading image
(i.e. avoid calling multiple times sprite.newSpriteSheet(“coffeetypes.png”…)

3> When do I call spriteSheet:dispose()?

4> Will there be a problem if I call (in terms of memory leaks or something…)
displayFrame(getFrame(1))
displayFrame(getFrame(2))
displayFrame(getFrame(1))
[import]uid: 45045 topic_id: 9193 reply_id: 309193[/import]

This solution seems to work. Is there any problem with it.
Also what about memory leaks and calling spriteSheet:dispose()?

local displayGroup = display.newGroup()
local sheet = sprite.newSpriteSheet(“coffeetypes.png”, 40, 20)

function getFrame(frameNumber)
local spriteSet = sprite.newSpriteSet(sheet, frameNumber, 1)
return sprite.newSprite(spriteSet)
end

function displayFrame(frame, x, y)
frame.x = x
frame.y = y
displayGroup:insert( frame )
end

displayFrame(getFrame(1), 100, 100) [import]uid: 45045 topic_id: 9193 reply_id: 33538[/import]

You should use spriteInstance.currentFrame. [import]uid: 51516 topic_id: 9193 reply_id: 33555[/import]

[code]
local sprite = require(“sprite”)

local gameGroup = display.newGroup()

– Load score digits from sprite sheet
local scoreImages = sprite.newSpriteSheet(“scoreDigits.png”, 50, 50)
local scoreSet = sprite.newSpriteSet(scoreImages, 1, 10)
local scoreDigits = sprite.newSprite(scoreSet)
scoreDigits.x = 25; scoreDigits.y = 25
gameGroup:insert(scoreDigits)

– Now choose a frame(1 through 10) from the sprite sheet:
scoreDigits.currentFrame = frame
[/code] [import]uid: 53445 topic_id: 9193 reply_id: 46149[/import]