Keyboard Listener Events
Local functiononkeyreleased (KeyCode, event)LocalLabel =Event:getcurrenttarget ()ifKeyCode = = cc. Keycode.key_back Thenlabel:setstring ("Back clicked!") ElseIfKeyCode = = cc. Keycode.key_menu Thenlabel:setstring ("MENU clicked!") End End LocalListener =cc. Eventlistenerkeyboard:create () Listener:registerscripthandler (onkeyreleased, CC. handler.event_keyboard_released)LocalEventdispatcher =Layer:geteventdispatcher () eventdispatcher:addeventlistenerwithscenegraphpriority (Listener, LABELTIP)
Focus Monitoring
Local functiononfocuschanged (Widgetlostfocus,widgetgetfocus)if Nil~= Widgetgetfocus andWidgetgetfocus:isfocusenabled () ThenWidgetgetfocus:setcolor (cc.c3b (255,0,0)) End if Nil~= Widgetlostfocus andWidgetlostfocus:isfocusenabled () ThenWidgetlostfocus:setcolor (cc.c3b (255,255,255)) End if Nil~= Widgetlostfocus and Nil~= Widgetgetfocus Then Print(String.Format("On focus Change,%d widget get focus,%d widget lose focus", Widgetgetfocus:gettag (), Widgetlostfocus:gettag ())) End End LocalEventListener =cc. Eventlistenerfocus:create () Eventlistener:registerscripthandler (onfocuschanged)LocalEventdispatcher =Self:geteventdispatcher () eventdispatcher:addeventlistenerwithfixedpriority (EventListener,1)
Touch Listen Events
Local functionontouchesended (touches, event)LocalCount =table.getn (touches) fori =1, Count Do LocalLocation =touches[i]:getlocation () forj =1,3 Do Localnode = Converttonode_layer:getchildbytag ( -+ I-1) Localp1, p2 p1=node:converttonodespacear (location) P2=node:converttonodespace (location) Cclog ("ar:x=".. p1.x.", y=".. P1.y."--Not ar:x=".. p2.x.", y=".. p2.y)End End End LocalListener =cc. Eventlistenertouchallatonce:create () Listener:registerscripthandler (ONTOUCHESENDED,CC. handler.event_touches_ended)LocalEventdispatcher =Converttonode_layer:geteventdispatcher () eventdispatcher:addeventlistenerwithscenegraphpriority (Listener, Converttonode_layer)
Single Touch Monitoring
Local functionOntouchbegan (Touch, event)return true End Local functionontouchmoved (Touch, event)ifItem ~=Nil ThenItem:removefromparent (true) --item:release () --item = Nil End End LocalListener =cc. Eventlistenertouchonebyone:create () Listener:registerscripthandler (ONTOUCHBEGAN,CC. Handler.event_touch_began) Listener:registerscripthandler (ontouchmoved,cc. handler.event_touch_moved)LocalEventdispatcher =Ret:geteventdispatcher () eventdispatcher:addeventlistenerwithfixedpriority (Listener,-129)
Scene level ingress and egress event monitoring
Local function onnodeevent (event) if " Exit " Then ret:geteventdispatcher (): RemoveEventListener (listener) end End Ret:registerscripthandler (onnodeevent)
Menu corresponding Event
--Font Item LocalSpritenormal = cc. Sprite:create (S_menuitem, Cc.rect (0, at*2, the, at)) Localspriteselected = cc. Sprite:create (S_menuitem, Cc.rect (0, at*1, the, at)) Localspritedisabled = cc. Sprite:create (S_menuitem, Cc.rect (0, at*0, the, at)) LocalItem1 =cc. Menuitemsprite:create (Spritenormal, spriteselected, spritedisabled)Local functionmenucallback (Sender) Cclog ("menucallback ...") ret:getparent (): SwitchTo (1) EndItem1:registerscripttaphandler (menucallback)--Image Item Local functionMenuCallback2 (Sender) Ret:getparent (): SwitchTo (2) End LocalITEM2 =cc. Menuitemimage:create (S_sendscore, S_presssendscore) Item2:registerscripttaphandler (MenuCallback2)
UI Control Listening
local function percentchangedevent (sender,eventtype) if EventType = = Ccui. slidereventtype.percentchanged then local slider = sender local percent = "percent" .. Slider:getpercent () self._displayvaluelabel:setstring (percent) end end Local slider = Ccui. Slider:create () slider:settouchenabled (true) slider:loadbartexture ("Cocosui/slidertrack2.png") Slider:loadslidballtextures ("Cocosui/sliderthumb.png", "Cocosui/sliderthumb.png", "" ") slider:loadprogress Bartexture ("Cocosui/slider_bar_active_9patch.png") slider:setscale9enabled (True) slider:setcapinsets (cc.rect (0, 0, 0, 0)) Slider:setcontentsize (Cc.size (+)) slider:setposition (CC.P (widgetsize.wid th/2.0, widgetsize.height/2.0)) Slider:addeventlistener (percentchangedevent)
Animated Event Listener
Local functionanimationevent (Armatureback,movementtype,movementid)LocalID =MovementidifMovementtype = = CCS. Movementeventtype.loopcomplete Then ifid = ="Kindle" Then LocalActiontoright = cc. Moveto:create (2, CC.P (Visiblerect:right (). x- -, Visiblerect:right (). Y)) Armatureback:stopallactions () armatureback:runaction (CC. Sequence:create (ACTIONTORIGHT,CC. Callfunc:create (CALLBACK1)) armatureback:getanimation ():p Lay ("Walk") ElseIfid = ="Firemax" Then LocalActiontoleft = cc. Moveto:create (2, CC.P (Visiblerect:left (). x + -, Visiblerect:left (). Y)) Armatureback:stopallactions () armatureback:runaction (CC. Sequence:create (Actiontoleft, CC. Callfunc:create (Callback2)) armatureback:getanimation ():p Lay ("Walk") End End Endarmature:getanimation (): Setmovementeventcallfunc (animationevent)
Various types of listening time collation