-1

ボタンが離されたら、ボタンを「押したまま」にしようとしています。現在、私はコロナ用に改善されたボタン モジュールを使用しています。デフォルトの画像はボタンが押されていないように見え、上の画像は押されたように見える画像に置き換えられています。

私がやろうとしているのは、ボタンが押されると、オーバーイメージにとどまることです。これが、テストしているボタンのコードのセットアップ方法です。

local digButton = buttons.newButton{
    default = "digButton.png",
    over = "digButtonPressed.png",
    onEvent = digButtonFunction,
    id = "dig"
    }
    digButton:setReferencePoint(display.CenterReferencePoint)
    digButton.x = display.contentWidth/5
    digButton.y = display.contentHeight/1.9

また、このボタンの id を変数に設定する関数 (digButtonFunction) があります。これは、ユーザーがこのボタンに続くボタンを押したときに if ステートメントを実行するために使用されます。

4

1 に答える 1

2

これは、あなたが本当に欲しいのはスイッチのように思えます。ボタンは、UI の観点からそれを行うように設計されているわけではありません。ダウン状態は、何らかのアクションが発生したことをユーザーにフィードバックするためだけのものです。

私だったら、ボタン ビットをまったく使用せずに、display.newImageRect() を使用して画像を読み込み、最初にダウン状態を描画し、次にアップ状態を描画します。いずれかを非表示にするタッチイベントリスナーをそれぞれに構築しました。ゲームのサウンド オン/オフ ボタンでこれを行います。

local soundOn = true 
local soundOnBtn, soundOffBtn

local function soundToggle(event)
    if soundOn then
        soundOn = false
        soundOnBtn.isVisible = false
        soundOffBtn.isVisible = true
    else
        soundOn = true
        soundOnBtn.isVisible = true
        soundOffBtn.isVisible = false
    end
    return true
end
soundOnBtn = display.newImageRect("images/switch_on.png", 46, 36)
soundOnBtn.x = display.contentWidth / 2 + 25
soundOnBtn.y = display.contentHeight / 2 - 15
group:insert(soundOnBtn)
soundOnBtn:addEventListener("tap", soundToggle)

soundOffBtn = display.newImageRect("images/switch_off.png", 46, 36)
soundOffBtn.x = display.contentWidth / 2 + 25
soundOffBtn.y = display.contentHeight / 2 - 15
group:insert(soundOffBtn)
soundOffBtn:addEventListener("tap", soundToggle)


soundOffBtn.isVisible = false
于 2012-12-15T19:17:44.653 に答える