图像不会卸载 - 请协助

时间:2014-04-22 20:22:24

标签: image lua corona

我在这里有一些代码,当点击一个图像(这是我的按钮)时,会随机出现一个新图像。这是因为我在里面创建了一些图像。

local animalPic

local button = display.newImageRect ("images/animalBtn.jpg", 200, 200)
button.x = 250
button.y = 50

local myPics = {"images/animal1.png", "images/animal2.png"}

function button:tap (event)


    local idx = math.random(#myPics) 
    local img = myPics[idx] 
    local animalPic = display.newImage(img)
    animalPic.x = contentCenterX
    animalPic.y = contentCenterY
end

button:addEventListener ("tap", button)

问题是当我点击按钮时图形只是堆积起来。正确的行为应该是 -

单击按钮,在删除上一个图像时显示图像。如何合并此行为?我已经尝试了removeSelf命令,它不起作用......任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

每次输入函数时都声明animalPic。您应该声明一次,然后将其删除并替换为另一个。 它应该是:

local animalPic

function button:tap (event)
    local idx = math.random(#myPics) 
    local img = myPics[idx] 
    animalPic:removeSelf()
    animalPic = nil
    animalPic = display.newImage(img)
    animalPic.x = contentCenterX
    animalPic.y = contentCenterY
end

答案 1 :(得分:0)

当您调用display.newImage()时,您正在添加新图像。问题是你需要删除/隐藏原始的。也许你真的需要两个对象 - 一个用于当前图像,一个用于点击事件。发生点击事件时,隐藏旧图像并显示新图像。另一种方法是将所有图像加载到自己的imageRects中,然后打开和关闭它们。