cocos2dx-lua结合cocosbuilder问题汇总-创新互联

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 内容显示位置问题

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:cocos2dx-lua结合cocosbuilder问题汇总-创新互联
链接分享:http://ybzwz.com/article/cscses.html