溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

cocos2dx-lua結合cocosbuilder問題匯總

發布時間:2020-07-13 23:49:49 來源:網絡 閱讀:1345 作者: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

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女