2013-02-21 31 views
0

我不明白爲什麼我的按鈕在按下時不會改變外觀,任何人都可以告訴我以下代碼段是否有問題。我正在使用電暈SDKCorona simple eventListener

這是我完整的main.lua,如果我刪除事件偵聽器buttonswap的作品。

display.setStatusBar(display.HiddenStatusBar); 

local textObj = display.newRetinaText("Click and see what happens!", 40, 40, nil, 0) 
textObj:setTextColor(255,0,0); 

local widget = require "widget"; 

local button = widget.newButton{ 
    default = "Button.png", 
    over = "ButtonClicked.png", 
    onPress = button.touch; 
     } 

button.x = display.contentCenterX; 
button.y = display.contentCenterY+200; 

local function touch(e) 
if(e.phase == "began")then 
     textObj.text = "Clicked!"; 
     textObj:setTextColor(255,255,255); 
elseif(e.phase == "ended") then 
     textObj.text = "Released!"; 
     textObj:setTextColor(255,0,0); 
    end 
end 

現在我只能看到文本,而不是按鈕!

回答

0

我測試過你的代碼,按鈕在點擊時發生了變化。我能想出的唯一原因是ButtonClicked.png丟失。檢查控制檯(名爲Corona Simulator Output的窗口)是否有任何錯誤。

此外,覆蓋基地: 請確保您正在運行相同的main.lua您正在編輯。

編輯後:

我相信你將覆蓋默認的按鈕行爲與

button:addEventListener("touch", button); 

嘗試使用構造函數的參數onPress

local button = widget.newButton{ 
    default = "Button.png", 
    over = "ButtonClicked.png", 
    onPress = touch 
} 
+0

它是正確的main.lua,並且ButtonClicked與該主文件在同一個文件夾中...奇怪的 – Eyeball 2013-02-21 16:41:44

+0

請參閱我的編輯! – Eyeball 2013-02-21 16:48:16

+0

eventlistener會覆蓋我的按鈕定義嗎?在那種情況下我將如何解決它? – Eyeball 2013-02-21 16:51:29

0

好吧,我解決了!這是我做到的。

local button = widget.newButton{ 
default = "Button.png", 
over = "ButtonClicked.png", 

} 
button.x = display.contentCenterX; 
button.y = display.contentCenterY+200; 


function button:tap(e) 
-- Do what you want to do when event occurs 
end 

button:addEventListener("tap", button);