文章撰寫日期︰2013/08/30 23:20 cocos2dx使用版本︰v 3.0 alpha 0 cocosBuilder使用版本︰v 3.0 alpha 5
一、前言
CCControlButton擴充件在cocos2dx2.1.4版尚未得到完整的JSB Binding支援,如同前一篇所言,
因此只好忍痛改用cocos2dx-3.0alpha0版。
但是,
卻發現cocosBuilder編譯岀來的HTML5編碼仍然說不支援CCControlButton,
岀現 Cannot call method 'setCallback' of undefined.的錯誤。
筆者記︰
不僅是CCControlButton無法使用(cocos2dx-html5端沒有寫接收CCControlButton的Callback),連一些基本.width或.height的指令都會無法用。
二、文章開始
百思不得其解,仔細查看coocsBuilder編譯岀來的boot-html5.js檔才發現這當中大有文章。
以下是boot-html5.js檔編譯岀來的原內文︰
(function () { var d = document; var c = { COCOS2D_DEBUG:2, //0 to turn debug off, 1 for basic debug, and 2 for full debug box2d:false, chipmunk:true, showFPS:true, loadExtension:true, frameRate:60, tag:'gameCanvas', //the dom element to run cocos2d on //engineDir:'../../../../cocos2d/', SingleEngineFile:'cocos2d-html5.min.js', appFiles:[ 'js/ApiBank.js', 'js/ChoiceScene2.js', 'js/CommonUtil.js', 'js/DoorScene.js', 'js/HomeScene.js', 'js/PlayScene.js', 'js/Questions.js', 'js/StartScene.js', 'js/TemplateScene.js', 'resources-html5.js', 'boot2-html5.js' ] }; window.addEventListener('DOMContentLoaded', function () { //first load engine file if specified var s = d.createElement('script'); /*********Delete this section if you have packed all files into one*******/ if (c.SingleEngineFile && !c.engineDir) { s.src = c.SingleEngineFile; } else if (c.engineDir && !c.SingleEngineFile) { s.src = c.engineDir + 'platform/jsloader.js'; } else { alert('You must specify either the single engine file OR the engine directory in "cocos2d.js"'); } /*********Delete this section if you have packed all files into one*******/ //s.src = 'Packed_Release_File.js'; //IMPORTANT: Un-comment this line if you have packed all files into one d.body.appendChild(s); document.ccConfig = c; s.id = 'cocos2d-html5'; //else if single file specified, load singlefile }); })();
從這段code可看見,
cocosBuilder怎麼讓JSB Binding岀來的code如何透過cocos2d-html5在HTML5繪圖,
原來是用了以下這個微型化引擎︰
SingleEngineFile:'cocos2d-html5.min.js',
cocosBuilder在編譯成HTML5檔時,
自動寫入了這個很簡易的cocos2d-html接口,
讓我們攢寫的JSB-Binding Code可以和HTML5溝通,
也因為是微型化的版本,
我們需要改用被註解掉的
engineDir:'../../../../cocos2d/',來獲得完成的cocos2d-html5接口支援。
在gitHub上將完整的coocs2d-html複製下來,
將其下cocos2d資料夾對應到上面
engineDir:'../../../../cocos2d/',的路徑,
即可獲得完整的cocos2d-html支援,
此時,
CCcontrolButton也將能獲得完全的html5版支援!
沒有留言 :
張貼留言