首页 > 代码库 > cocos2dx-lua+cocosbuilder开发问题汇总1
cocos2dx-lua+cocosbuilder开发问题汇总1
mac 10.9.1
xcode 5.0.2
cocos2dx 2.2.2
cocosBuilder 3.0-alpha5
问题1、 每次脚本有改动,Xcode都要清理。
问题2、Get data from file(.ccbi) failed!
问题3、attempt to call field ‘setPosition‘ (a nil value)
定义: local MainScene =class("MainScene", function()
return CCLayer:create()
end)
覆写函数:
function MainScene:setPosition(x, y)
print("x = %0.2f, y = %0.2f", x, y)
--getmetatable(self).setPosition(self, x,y) --报错 因为setPosition函数在CCNode中 CClayer种没有。
getmetatable(getmetatable(self)).setPosition(self,x,y) --正确
end
问题4、attempt to index local ‘self‘ (a number value)
使用引擎提供的CCBuilderReaderLoad加载ccbi文件,回调函数报错
使用:
function MainScene:dialogClick()
cclog("dialogClick")
local PersonPanel=require "luascript/PersonPanel"
self:addChild(PersonPanel.new())
self:setPosition(0,0)
end
解决方案:
定义方法:
function handler(target, method)
return function(...)
return method(target, ...)
end
end
在CCBuilderReaderLoad函数里所有设置回调的地方做如下修改。
--proxy:setCallback(callbackNode, ccb[documentControllerName][cbName], integerValue:getValue())
proxy:setCallback(callbackNode, handler(owner, owner[cbName]), integerValue:getValue())
问题5、事件分发问题,CCScrollView与CCMenu的事件优先级问题
参考 http://linuxp.blog.163.com/blog/static/17096277201382115558525/ 的文章
参考 http://bbs.9ria.com/thread-222180-1-1.html 的文章
参考:http://blog.csdn.net/liliangchw/article/details/8612485
CCMenu的优先级值-128,CCScrollView的优先级是0,CCControl的优先级值1
解决方案:程序里做如下处理:将引擎里所有控件的优先级都设置为1
问题6、CCScrollView 内容显示位置问题