版本2.2.1
想在lua里面监听android平台的返回键,找了一下没有找到方法,各位大神指教一二吧!
版本2.2.1
想在lua里面监听android平台的返回键,找了一下没有找到方法,各位大神指教一二吧!
layer:registerScriptKeypadHandler( function(callback)
if callback == “backClicked” then
–to do
end
end)
Thanks a lot
给力啊,谢谢大神
— Begin quote from ____
引用第1楼coolboyding于2014-05-08 18:47发表的 :
layer:registerScriptKeypadHandler( function(callback)
if callback == “backClicked” then
–to do
end
end) http://www.cocoachina.com/bbs/job.php?action=topost&tid=200892&pid=947283
— End quote
你好问一下,2.2.3的如和设置啊,我这样写的监听不了
layer:setKeypadEnabled(true)
self:addChild(layer,-1)
layer:addNodeEventListener(cc.KEYPAD_EVENT,function(event)
if event.name == “back” then
print(“back back ***************”)
elseif event.name == “menu” then
print(“menu menu ***************”)
请把代码粘贴在这里 ```
— Begin quote from ____
引用第1楼coolboyding于2014-05-08 18:47发表的 :
layer:registerScriptKeypadHandler( function(callback)
if callback == “backClicked” then
–to do
end
end) http://www.cocoachina.com/bbs/job.php?action=topost&tid=200892&pid=947283
— End quote
你好问一下,2.2.3的如和设置啊,我这样写的监听不了
layer:setKeypadEnabled(true)
self:addChild(layer,-1)
layer:addNodeEventListener(cc.KEYPAD_EVENT,function(event)
if event.name == "back" then
print("back back ***************")
elseif event.name == "menu" then
print("menu menu ***************")
```
哥,知道3.0 以上版本 是怎么弄的么? 求教
int LuaEngine::handleKeypadEvent(void* data)
{
if (NULL == data)
return 0;
KeypadScriptData* keypadScriptData = static_cast<KeypadScriptData*>(data);
if (NULL == keypadScriptData->nativeObject)
return 0;
int handler = ScriptHandlerMgr::getInstance()->getObjectHandler(keypadScriptData->nativeObject, ScriptHandlerMgr::HandlerType::KEYPAD);
if (0 == handler)
return 0;
EventKeyboard::KeyCode action = keypadScriptData->actionType;
switch(action)
{
case EventKeyboard::KeyCode::KEY_BACKSPACE:
_stack->pushString("backClicked");
break;
case EventKeyboard::KeyCode::KEY_MENU:
_stack->pushString("menuClicked");
break;
default:
break;
}
int ret = _stack->executeFunctionByHandler(handler, 1);
_stack->clean();
return ret;
}
看源码LuaEngine.app文件那 只就响应了KEY_BACKSPACE 和 KeyCode::KEY_MENU 如果想要响应其他按键 需要在源码修改加上就好了
--监听手机返回键
function GameScene:return_key(layer)
--监听手机返回键
local key_listener = cc.EventListenerKeyboard:create()
--返回键回调
local function key_return()
local scene = require("WelcomeScene")
cc.Director:getInstance():replaceScene(scene:createScene())
end
--lua中得回调,分清谁绑定,监听谁,事件类型是什么
key_listener:registerScriptHandler(key_return,cc.Handler.EVENT_KEYBOARD_PRESSED)
local eventDispatch = layer:getEventDispatcher()
eventDispatch:addEventListenerWithSceneGraphPriority(key_listener,layer)
end
```
mark…mark
很好很强大 mark一下
事件类型需要改成EVENT_KEYBOARD_RELEASED
mark一下…
我3.3不行,难道有什么更改吗?
mark下~~