Total Pageviews

Friday, May 30, 2014

Type Event Listener (detail2)

object:dispatchEvent()
វានឹង dispatches event ទៅកាន់ object។ សំរាប់​ event parameter អាចជាតារាងជាមួយនឹង name property ដែលជា string ក្នុងការកំនត់នៅ ប្រភេទរបស់ event។ វាអាចមានសំរាប់ DisplayObject or global Runtime object,​ បើសិនជាវាមាន listener registered ក្នុងការទទួលឈ្មោះរបស់ events។ វាអាចបញ្ចូលនៅ target property នៅក្នុង event ទៅកាន់ event ដែល listener អាចស្គាល់នៅ object ដែលបានទទួលពី event
Syntax: object:dispatchEvent (event)
Event(តំរូវការ) វាជាតារាងដែលផ្ទុកនៅ event properties។ វាគួរតែជាឈ្មោះរបស់ property ដែលនឹង corresponds ទៅកាន់ ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​event ដែលចង់ dispatch
សូមមើលកូដះ
-- Create an object that listens to events
local image = display.newImage( "image.png" )
-- Setup listener
local myListener = function( event )
        print( "Event " .. event.name )
        print( "Target has width: " .. event.target.contentWidth )
end
image:addEventListener( "myEventType", myListener )
-- Sometime later, create an event and dispatch it
local event = { name="myEventType", target=image }
image:dispatchEvent( event )

object:removeEventListener()
ប្រើសំរាប់លុបចេញនៅ listener ចេញពី object’s list របស់ listeners ដែលមិនត្រូវបានចំណាំរបស់ events ដែល corresponding ទៅកាន់ specified event
ចំណាំះ សូមចាំថា nil  គឺជាតំលៃត្រឹមត្រូវសំរាប់ listener វាមិន error ក្នុងការហៅ removeEventListener ជាមួយនឹង nil listener។ វានឹងពិបាកក្នុងការស្វែងរក bugs បើសិនជាប្រើខុសឈ្មោះសំរាប់ listener ដែលព្យាយាមក្នុងការលុបចេញ
Syntax: object:removeEventListener (eventName, listener)
eventName(តំរូវការ) វាជា String ដែលជាឈ្មោះរបស់ event ដែល corresponding listener ដែលអាចលុបចេញពីឈ្មោះ
listener(តំរូវការ) វាជា listener ដែលជា reference ទៅកាន់ listener ក្នុងការ លុបចេញពីបញ្ជីរ
សូមមើលកូដះ
-- define motion and limits
local DX, DY = 33
local XMIN, XMAX = 1, display.contentWidth-1
local YMIN, YMAX = 20, display.contentHeight-1

-- create a shape
local button = display.newRoundedRect( XMIN, YMIN, 150505 )
button:setFillColor( 0.401 )
button.strokeWidth = 6
button:setStrokeColor( 0.8 )

-- move the shape until it hits the limits
local function onFrame (event)
    if button.x + button.width/2 > XMAX or button.x < XMIN
    or button.y + button.height/2 > YMAX or button.y < YMIN then
        -- stop
        Runtime:removeEventListener( "enterFrame", onFrame )
    else
        -- move
        button.x = button.x + DX
        button.y = button.y + DX
    end
end

-- update the position every frame
Runtime:addEventListener( "enterFrame", onFrame )

No comments:

Post a Comment