2012年11月9日 星期五

新手入門Part 2-Function & Listener

在Corona中,如何寫一個Function 來供程式使用?

關鍵字就是 function

 function f (x, y) --定義一個叫做f的function,能夠傳入兩個參數,並回傳此兩參數相加之值
      return (x+y)
    end
print(f(2,3)) -- 5
-- 使用方法為 ()
-- 如:f(2,3),f(5,6)


上例便是一個簡單的function建制方法

再來要建制一個Listener

所謂的Listener 就是程式發生事件(Event)時會觸動

通常Event 在觸發時同時會傳送一個參數(event),讓使用者可以了解

觸動Event Type 和 Event Target(觸發物件)

常用到的Event 有 Touch Event & Tap Event

Touch Event 包含四種
  • began
  • moved
  • ended
  • cancelled
首先找任一圖檔(這裡使用Icon.png),在程式中加入以下程式碼

local object = display.newImage( "Icon.png" ) -- 產生圖片物件
object.id = "icon object" -- 給予物件id名稱

local function onObjectTouch( event )
    if event.phase == "began" then -- 當物件開始touch
        print( "Touch event began on: " .. event.target.id )
    elseif event.phase == "moved" then --當在物件上做移動時
        print( "Touch event moved on: " .. event.target.id )
        
    elseif event.phase == "ended" then --當物件結束 touch
        print( "Touch event ended on: " .. event.target.id )
    end
    
    return true
end
object:addEventListener( "touch", onObjectTouch ) -- 在這裡設touch 告訴系統要傾聽touch的event

執行結果如下


觸碰螢幕上圖片時會出現如右圖之文字

相較Touch  Event,Tap Event 只有一種

local obj = display.newImage( "Icon.png" )

local function onObjectTap( event )
    print( event.name,event.numTaps ) --可判斷tap做了幾次,支援1 & 2
end

obj:addEventListener( "tap", onObjectTap )

點擊後出現print



以上就是簡單的Listener 實作方法

就Touch & Tap兩個Event 就能夠做出很豐富的操作介面嚕

來自小島

沒有留言:

張貼留言