2016-09-18 9 views
1

私はコロナsdkとluaの初心者です。だから私はプログラムに取り組んでおり、次のような問題に直面したonPress = display.removeはコロナSDKで動作しません

local buttonSmall = widget.newButton 
{ 
id = "smallBtn", 
defaultFile = "buttonBlueSmall.png", 
overFile = "buttonBlueSmallOver.png", 
label = " Next", 
fontSize = 12, 
emboss = true, 
onPress = display.remove(button1) 

} 

を問題は、私は「buttonSmall」をクリックすると、ボタン1を削除したいということですが、私はSDKの私のコードを起動するたびにそれが表示されません。でも

答えて

3

問題を「buttonSmall」をクリックせずにボタンをクリックすると、onPressリスナーに機能を割り当てていないことです。 display.remove(button1)を実行し、onPressに返すものを割り当てます。nilです。あなたはそのように、あなたの関数呼び出しをラップする必要があります。

onPress = function() 
    display.remove(button1) 
end, 

またはこのような:

local function deleteButton1() 
    display.remove(button1) 
end 

... 

onPress = deleteButton1, 

あなたbutton1が現れることはありません、あなたはすでにdisplay.remove()を呼び出すことによって、それを削除した理由だからです。覚えておいてください。ウィジェットはonPressに関数が割り当てられていることを期待しています。関数名を指定したり、関数を作成したりするだけで可能です。

+0

はそれが働いたありがとうございました! –

+0

素晴らしい!正解とマークすることを検討してください。助けてうれしい! –

+0

しかし、ButtonSmallをクリックしてすべてのボタンを削除したい場合はどうすればいいですか? –

0

また、以下のようなインライン関数を使うことができます。

local buttonSmall = widget.newButton 
{ 

id = "smallBtn", 

defaultFile = "buttonBlueSmall.png", 

overFile = "buttonBlueSmallOver.png", 

label = " Next", 

fontSize = 12, 

emboss = true, 

onPress = function()display.remove(button1)end 

} 
+0

私の答えはすでにインライン関数をカバーしています。 –

関連する問題