0

widget.newButton を使用してボタンの 6x6 グリッドを生成しています。ユーザーが画面に触れてから、目的のボタンの上に指をドラッグして、選択範囲に数字を追加できるようにしたいと考えています。たとえば、"811030" (つまり、グリッドの一番上の行) を選択したい場合は、その上で指をドラッグします。

ここに画像の説明を入力 これが私がこれまでに持っているコードです:

local widget = require( "widget" )

local function handleButtonEvent( event )
local phase = event.phase

if "moved" == phase then
    print("Button Pressed")
end
end

function tileRow(numTiles, padding)

local tileWidth = (display.contentWidth / numTiles) - padding
local x = padding/2
local y = display.contentHeight - numTiles * (tileWidth + padding)

    for i = 1, numTiles, 1 do
        for j = 1, numTiles, 1 do 
            local myButton = widget.newButton
            {
                left = x,
                top = y,
                width = tileWidth,
                height = tileWidth,
                id = "button_"..i..j,
                label = math.random(0,9),
                onEvent = handleButtonEvent,
            }
            x = x + tileWidth + padding
        end
        x = padding/2
        y = y + tileWidth + padding
    end
end

tileRow(6,1)
4

2 に答える 2

0

イベント ハンドラー内のラベルにアクセスし、そこから完全な番号を作成します。ある時点で fullNumber を "" に戻すなど、コーナーケースを処理させます:)

local fullNumber = ""
local function handleButtonEvent( event )
    local phase = event.phase
    local btn = event.target
    local btnLabel = btn.label

    if "moved" == phase then
        print("Button Pressed with label:"..btnLabel)
        fullNumber=fullNumber..btnLabel
        print("Full number: "..fullNumber)
    end
end

乾杯 !

于 2013-11-06T11:48:29.087 に答える
0
  • 指の下のボタンを取得します

handleButtonEvent では、ユーザーが指を触れて動かしている座標 (x, y) を取得できます。実際、event.target は常に最初にタッチされたボタンと等しくなるため、event.target は目的には十分ではありません。widget.newButton を返すこの関数 GetMyButton(x, y) を実装する必要があります。難しいことではありません。

  • 見つかったボタンのラベルを取得する

widget_button.luaによると、ボタンのラベルを取得するには、次のことを行う必要があります。

local btnLabel = btn:getLabel()
  • 見つかったラベルを連結します (重複に注意してください)
于 2013-11-06T16:49:02.170 に答える