我在这里有一些代码,当点击一个图像(这是我的按钮)时,会随机出现一个新图像。这是因为我在里面创建了一些图像。
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命令,它不起作用......任何帮助表示赞赏。
答案 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中,然后打开和关闭它们。