【问题标题】:how to count how many times I clicked my image button * LUA *如何计算我点击图片按钮的次数 * LUA *
【发布时间】:2014-03-20 17:09:31
【问题描述】:

我已经创建了 hello world 文本和一个可点击的按钮。当我点击按钮时,hello world 会随机跳动。

问题:我不知道如何让我的程序计算我点击了多少次按钮。

我的进步:

local myHeight = display.contentHeight
local myWidth = display.contentWidth

local topRightHeight = display.newText ("Height "..myHeight, 300 , 40 ,nil,15)
local topRightWidth = display.newText ("Width "..myWidth, 300,60,nil,15) 


local redButton = display.newImage ("button.png",0,0)
redButton.x = display.contentWidth -60
redButton.y = display.contentHeight -62.5


local textObj = display.newText ("Hello World",0,0,native.systemFont,18)
textObj: setFillColor(0,250,0)
textObj.x = 40
textObj.y = 30



local number = 0


number = display.newText (number, 30, 30 , native.systemFont, 25)



function moveButtonRandom (event)
textObj.x = math.random(50, display.contentWidth -50)
textObj.y = math.random(50, display.contentHeight -50)

end


redButton: addEventListener ("tap", moveButtonRandom)

【问题讨论】:

  • 你为什么用iOS标记这个问题?

标签: lua coronasdk


【解决方案1】:

你可以使用int类型的flag来统计按钮被点击的次数。

最初设置 flag=0,如果单击按钮,则在 onclick() 方法中使用 flag=flag+1。

【讨论】:

  • @S S K 所说的是正确的。代码(逐行):local flag = 0function moveButtonRandom (event)flag = flag + 1print("Button tap count: "..tostring(flag))textObj.x = math.random(50, display.contentWidth -50)textObj.y = math.random(50, display.contentHeight -50)end
  • 我对 on click() 方法感到困惑,您能否详细解释一下。我也得到了彼此的数字堆叠。
【解决方案2】:

现在它就像一个魅力

display.setStatusBar(display.HiddenStatusBar)

local redButton = display.newImage ("button.png",0,0)
redButton.x = display.contentWidth - 60
redButton.y = display.contentHeight - 62.5

local textObj = display.newText("Hello World", 0, 0, native.systemFont, 18)
textObj:setFillColor(0, 250, 0)
textObj.x = 40
textObj.y = 30


local number = 0
local textField = display.newText(number, 30, 30, native.systemFont, 25)

local function moveButtonRandom(event)
    textObj.x = math.random(50, display.contentWidth - 50)
    textObj.y = math.random(50, display.contentHeight - 50)
    number = number + 1
    textField:removeSelf()
    textField = display.newText(number, 30, 30, native.systemFont, 25)
end

redButton:addEventListener("tap", moveButtonRandom)

【讨论】:

    【解决方案3】:

    您可以在clickListener for 按钮中跟踪监视某些标志的点击。每当您通过 clickListener 单击按钮时,保持一个标志递增。像这样的东西

    在你的活动中初始化一个变量让int flagForButton = 0

    OnClickListener clickListener1 = new OnClickListener() {
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                        flagForButton++;
            Toast.makeText(MarketSnap.this, String.valueOf(flagForButton), Toast.LENGTH_SHORT).show();
        }
    };
    

    在按钮上设置 clickListener。像这样

    yourbutton.setOnClickListener(clickListener1);
    

    编辑

    在回答这个问题时,问题被标记为Android。所以我把代码放在上面。但现在问题已被编辑并标记为LUA。所以逻辑保持不变,您可以在按钮的clickListener 中增加flagcount

    【讨论】:

    • 感谢您的努力,您的策略是正确的,但 OP 需要 lua 和 corona SDK,而不是 java 和 android SDK(尽管他们可能能够翻译;)
    • @Schollii 嗯,当我回答这个问题时,它被标记为 Android。正如我所看到的,这个问题现在已被编辑。所以我可以做出改变。谢谢你告诉我。
    【解决方案4】:

    每次点击时更新文本编号。无需删除并重新创建。

    本地号码 = 0 local textField = display.newText(number, 30, 30, native.systemFont, 25)

    局部函数 updateNumber(n)

    textField.text = n

    结束

    本地函数 moveButtonRandom(event)

    textObj.x = math.random(50, display.contentWidth - 50)
    
    textObj.y = math.random(50, display.contentHeight - 50)
    
    number = number + 1
    
    UpdateNumber(number)
    

    结束

    redButton:addEventListener("tap", moveButtonRandom)

    【讨论】:

      猜你喜欢
      • 2017-11-29
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多