Corona SDK 随机文本

Corona sdk random text

我有一个问题,因为当我触摸我的按钮时有时不会出现我的文字...(对不起我的英语!)

代码:

function randomText(event)
    display.remove(mmDis)
    local a = {"Cristiano ronaldo jest najlepszy!","messi jest dobry!","lewandowski jest ok","diego lopez to bramkarz realu"}

    com = (a[math.random(1,#a)])


    local mmDis = display.newText(tostring(com), 
        display.contentWidth*0.57, display.contentHeight*0.7,               
        display.contentWidth*0.9, display.contentHeight*0.8, "Impact", 30)
        mmDis.y=20
        mmDis.x=190
        mmDis:setFillColor(0, 0, 0, 1)  
        mmDis.anchorY = 0    
end 

play:addEventListener ("tap", randomText )

    end

 end
play:addEventListener( "touch", object )
local mmDis 
function randomText(event)

if event.phase == "began" then 
 if mmDis then 
   display.remove(mmDis)
 end 

 local a = {"Cristiano ronaldo jest najlepszy!","messi jest dobry!","lewandowski jest ok","diego lopez to bramkarz realu"}

local com = a[math.random(1,#a)]


mmDis = display.newText(tostring(com), 
    display.contentWidth*0.57, display.contentHeight*0.7,               
    display.contentWidth*0.9, display.contentHeight*0.8, "Impact", 30)
    mmDis.y=20
    mmDis.x=190
    mmDis:setFillColor(0, 0, 0, 1)  
    mmDis.anchorY = 0   

 end  
end 

  play:addEventListener ("tap", randomText )



 end

end
play:addEventListener( "touch", object )

试试看。

确保您正确地本地化了您的变量。您需要在函数外部声明 "mmDis" ,然后不要在函数内部对其进行本地化。像这样

local mmDis* -- this will ensure code from here on out all use the SAME "mmDis"
function randomText(event)
    display.remove(mmDis)
    local a = {"Cristiano ronaldo jest najlepszy!","messi jest dobry!","lewandowski jest ok","diego lopez to bramkarz realu"}

    com = (a[math.random(1,#a)])

    -- NOTICE how I removed the local keyword below.
    -- This will ensure your code is talking about the same "mmDis" 
    -- you declared before your function
    mmDis = display.newText(tostring(com),
        display.contentWidth*0.57, display.contentHeight*0.7,               
        display.contentWidth*0.9, display.contentHeight*0.8, "Impact", 30)
    mmDis.y=20
    mmDis.x=190
    mmDis:setFillColor(0, 0, 0, 1)  
    mmDis.anchorY = 0    
end 

play:addEventListener ("tap", randomText )

end

end
play:addEventListener( "touch", object )

最终,您遇到的问题是您没有从屏幕上删除旧文本,因为 mmDis 位于 randomText 函数内。确保将变量本地化到适当的范围。这是一篇很好的读物 http://lua-users.org/wiki/ScopeTutorial