1. 安装nodejs环境http://,1
2. 解压压缩包中的文件
3. 拷贝编辑器导出的json文件到tool文件夹下,点击bat文件
ps:代码很简单,基于nodejs ,使用模板替换,大家可以随意修改
工具代码:
tool文件代码
/**
-
@author yu
/
var path = require(“path”);
var fs = require(“fs”);
var rootPath = __filename;
function readFilesInDir(dir){
fs.readdir(dir, function(error, files){
var len = files.length;
var file = null;
for (var i = 0; i < len; i++) {
file = files;
handle(dir + “\” + file);
}
})
}
function handle(filepath){
var LableItemS = ];
var ButtonItemS = ];
var eventItemS = ];
var ImageViewItemS = ];
var file = null;
var txt = “”;
var image = “”;
var event = “”;
var button = “”;
var json = “”;
var location = 2;
fs.stat(filepath, function(err, stats){
if (stats.isFile()) {
var filename = path.basename(filepath);
var filenames = filename.split(’.’);
if (filenames === “json”) {
json=filename;
file = filenames.split(’’).substring(0, 1).toLocaleUpperCase() + filenames.split(’’).substring(1);
getConfigFile(filename, null);
}
}
else
if (stats.isDirectory()) {
// readFilesInDir(path.dirname(filepath)+"\"+ path.basename(filepath))
}
})
function getConfigFile(path, callback){
fs.readFile(path, ‘utf8’, function(err, json_string){
if (err) {
console.error(“Could not open oooconfig file:”, err.path);
}
else {
prase(JSON.parse(json_string).widgetTree);
}
});
}
function prase(widget){
dump(widget);
for (var i = 0; i < LableItemS.length; i++) {
txt += LableItemS*;
}
for (var i = 0; i < ImageViewItemS.length; i++) {
image += ImageViewItemS*;
}
for (var i = 0; i < ButtonItemS.length; i++) {
button += ButtonItemS*;
}
for (var i = 0; i < eventItemS.length; i++) {
event += eventItemS*;
}
console.log(txt);
console.log(image);
console.log(button);
console.log(event);
getFile(“TEM.txt”);
}
function dump(widget){
var name = widget"options"]“name”];
switch (widget"classname"]) {
case “Panel”:
break;
case “Label”:
case “TextArea”:
code_text(name);
break;
case “Button”:
case “TextButton”:
code_button(name);
break;
case “ImageView”:
code_image(name);
break;
case “TextField”:
code_textfield(name);
break;
case “CheckBox”:
code_checkbox(name);
break;
case “ListView”:
code_list(name);
break;
case “ScrollView”:
code_scrollview(name);
break;
}
for (var i = 0; i < widget"children"].length; i++) {
dump(widget"children"]*);
}
}
function code_text(name){
var string = “this.getWidget(”" + name + “”).setString("" + name+ “”);";
LableItemS.push(string);
}
function code_image(name){
var string = “this.getWidget(”" + name + “”).loadTexture("");";
ImageViewItemS.push(string);
}
function code_button(name){
var event =“on_”+name;
var strevent = event + “:function(sender, type){if (type == ccui.Widget.TOUCH_ENDE) { cc.log(” + event + “);}},”;
eventItemS.push(strevent);
var string = “this.getWidget(”" + name + “”).addTouchEventListener( this." + event + “,this);”;
ButtonItemS.push(string);
}
function code_textfield(name){
var event =“on_”+name;
var strevent = event + “:function(sender, type){” +
“if " +”(type == ccui.TextField. EVENT_ATTACH_WITH_IME) { cc.log(" + event + “);}” +
“if " +”(type == ccui.TextField. EVENT_DETACH_WITH_IME) { cc.log(" + event + “);}”+
“},”;
eventItemS.push(strevent);
var string = “this.getWidget(”" + name + “”)." +“addEventListenerTextField( this.” + event + “,this);”;
ButtonItemS.push(string);
console.log(string);
}
function code_checkbox(name){
var event =“on_”+name;
var strevent = event + “:function(sender, type){” +
“if " +”(type == ccui.CheckBox.EVENT_SELECTED) { cc.log(" + event + “);}” +
“if " +”(type == ccui.CheckBox.EVENT_UNSELECTED) { cc.log(" + event + “);}”+
“},”;
eventItemS.push(strevent);
var string = “this.getWidget(”" + name + “”)." +“addEventListenerTextField( this.” + event + “,this);”;
ButtonItemS.push(string);
console.log(string);
}
function code_scrollview(name){
var event =“on_”+name;
var line = “var m = 10;var locSize=cc.Size(100,200);”+
“locSize.height = item.getContentSize()*m;”+
“var innerSize = this.getWidget(”" + name + “”).getContentSize();"+
“this.getWidget(”" + name + “”).setInnerContainerSize(cc.size(Math.max(innerSize.width, locSize.width), Math.max(innerSize.height, locSize.height)));"+
“this.getWidget(”" + name + “”).getInnerContainer().setPosition(0, locSize.height - this.innerContainer.getContentSize().height);"+
“for(var i =0;i<m;i++){” +
“var Item=item.clone();”+
“var itemname = “item”+name+”"+i;"+
“Item.setName(itemname);”+
“this.getWidget(”" + name + “”).addWidget(Item);"+
“this.getWidget(”" + name + “”).getWidget(itemname).tag=i;" +
“this.getWidget(”" + name + “”).getWidget(itemname).addTouchEventListener( this." + event + “,this);”+
“}”;
ImageViewItemS.push(line);
var strevent = event + “:function(sender, type){if (type == ccui.Widget.TOUCH_ENDE) { cc.log(” + event+“sender.tag);}},”;
eventItemS.push(strevent);
}
function code_list(name){
var event ="on"+name;
var line1 = “this.getWidget(”" + name + “”).setItemModel("");";
var line2 = “for(var i =0;i<5;i++){” +
“this.getWidget(”" + name + “”).pushBackDefaultItem("");" +
“this.getWidget(”" + name + “”).getItem(i).tag=i;" +
“this.getWidget(”" + name + “”).getItem(i).addTouchEventListener( this." + event + “,this);”+
“}”;
var string = line1 +line2;
ImageViewItemS.push(string);
var strevent = event + “:function(sender, type){if (type == ccui.Widget.TOUCH_ENDE) { cc.log(” + event+“sender.tag);}},”;
eventItemS.push(strevent);
console.log(string);
}
function getFile(path){
fs.readFile(path, ‘utf8’, function(err, json_string){
if (err) {
console.error(“Could not open config file:”, err.path);
}
else {
var js = json_string.replace(/\View/g, file + “View”);
js = js.replace(/JSON/, json);
js = js.replace(/BUTTON/, button);
js = js.replace(/\EVENT/, event);
js = js.replace(/\IMAGE/, image);
js = js.replace(/\TXT/, txt);
console.log(js);
var filename =file.toLocaleLowerCase() + “view” + “.js”;
fs.writeFile(filename, js);
}
});
}
}
function getFile(path){
fs.readFile(path, ‘utf8’, function(err, json_string){
if (err) {
console.error(“Could not open config file:”, err.path);
}
else {
var js = json_string.replace(/\View/g, file + “View”);
js = js.replace(/JSON/, json);
js = js.replace(/BUTTON/, button);
js = js.replace(/\EVENT/, event);
js = js.replace(/\IMAGE/, image);
js = js.replace(/\TXT/, txt);
console.log(js);
var filename =file.toLocaleLowerCase() + “view” + “.js”;
fs.writeFile(filename, js);
}
});
}
readFilesInDir(path.dirname(rootPath));******
界面模板文件
var g_View = null;
var View = ccui.Widget.extend({
init: function(){var bRet = false;
if (this._super()) {
if (‘keyboard’ in sys.capabilities)
this.setKeyboardEnabled(true);
if (‘mouse’ in sys.capabilities)
this.setMouseEnabled(true);
if (‘touches’ in sys.capabilities)
this.setTouchEnabled(true);
this.addWidget(ccs.uiReader.widgetFromJsonFile(“JSON”));
this.initaddlisitener();
// this.initUI();
bRet = true;
}
return bRet;
},
initUI: function(){
TXT
//---------------下面是图片
IMAGE
},
initaddlisitener: function(){
BUTTON
},
EVENT
});
View.instance = function(){
if (g_View == null) {
g_View = View.create();
}
return g_View;
};
View.create = function(){
var sg = new View();
if (sg && sg.init()) {
return sg;
}
return null;
};
View.destroy = function(){
if (g_View != null) {
g_View.removeFromParent(false);
g_View = null;
}
};
欢迎大家关注好友的游戏:叮咚西游%url%******