0

ボタンを押しても外観が変わらない理由がわかりません。次のスニペットに何か問題があるかどうか教えてください。コロナSDKを使用しています

これは私の完全な 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

これで、ボタンではなく、テキストのみが表示されます。

4

2 に答える 2

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
}
于 2013-02-21T15:03:13.307 に答える
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 );
于 2013-02-22T09:32:21.773 に答える