温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

cocos2dx-lua结合cocosbuilder问题汇总

发布时间:2020-07-13 23:49:49 来源:网络 阅读:1305 作者:cgw0827 栏目:开发技术

mac 10.9.1

xcode 5.0.2

cocos2dx 2.2.1

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、事件分发问题:

首先参考 http://linuxp.blog.163.com/blog/static/17096277201382115558525/ 的文章

然后参考 http://bbs.9ria.com/thread-222180-1-1.html 的文章

CCMenu的事件优先级引擎已经固定为-128,

见CCMenu.pkg

enum {

   kCCMenuHandlerPriority = -128

};


我们要重新设置CCMenu的优先级,否则如果两个ccbi文件种的CCMenu事件优先级一样,上层就无法截获事件了。也就是下层的CCMenu 上层的CClayer和上层的CCMenu的事件优先级是越来越高才对。


程序里做如下处理:

   function PersonPanel:setMenuProperty()

       local menu=tolua.cast(PersonPanel.PersonPanelMenu,"CCMenu")  

       menu:setHandlerPriority(property)

       property=property-1

   end

初始化时调用: performWithDelay(self,handler(self,self.setMenuProperty),1)--这样调用是有原因的。


6、CCScrollView与CCMenu的事件优先级问题

参考:http://blog.csdn.net/liliangchw/article/details/8612485


7、CCScrollView回调问题


8、CCScrollView 内容显示位置问题


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI