editor.file
This commit is contained in:
parent
627bcee8c4
commit
5e00ff8a50
89
_server/editor_file.demo.js
Normal file
89
_server/editor_file.demo.js
Normal file
File diff suppressed because one or more lines are too long
@ -3,26 +3,72 @@
|
||||
editor_file = {};
|
||||
|
||||
editor_file.getFloorFileList = function(editor,callback){
|
||||
if (isset(callback)) callback(['simple0.js','simple1.js','simple2.js'],null);
|
||||
var fs = editor.fs;
|
||||
if (isset(callback))
|
||||
fs.readdir('libs/project/floors',function(err, data){
|
||||
callback([data,err]);
|
||||
});
|
||||
}
|
||||
//callback(Array<String>,err:String)
|
||||
//callback([Array<String>,err:String])
|
||||
editor_file.loadFloorFile = function(editor,filename,callback){
|
||||
if (isset(callback)) callback('',null);
|
||||
//filename不含'/'不含'.js'
|
||||
var fs = editor.fs;
|
||||
if (isset(callback))
|
||||
fs.readFile('libs/project/floors/'+filename+'.js','utf-8',function(err, data){
|
||||
if (err!=null){callback(err);return;}
|
||||
data=data.split('=')
|
||||
data=[data[0],data.slice(1).join('=')]
|
||||
var varnameId = data[0].split('.').slice(-1)[0].trim();
|
||||
var filenameId = filename.split('/').slice(-1)[0].split('\\').slice(-1)[0];
|
||||
eval('b3917d1d_71c2_41f2_a8aa_481b215ffb99='+data[1]);
|
||||
var floorData = b3917d1d_71c2_41f2_a8aa_481b215ffb99;
|
||||
delete(b3917d1d_71c2_41f2_a8aa_481b215ffb99);
|
||||
var floorId = floorData.floorId;
|
||||
if (varnameId!=filenameId || filenameId!=floorId){
|
||||
callback('文件名,第一行的变量名以及floorId不一致');
|
||||
return;
|
||||
}
|
||||
editor.currentFloorId = floorId;
|
||||
editor.currentfloorData = floorData;
|
||||
callback(null)
|
||||
});
|
||||
}
|
||||
//callback(String,err:String)
|
||||
//callback(err:String)
|
||||
editor_file.saveFloorFile = function(editor,callback){
|
||||
if (isset(callback)) callback(null);
|
||||
if (!isset(editor.currentFloorId) || !isset(editor.currentfloorData)) {
|
||||
if (isset(callback)) callback('未选中文件或无数据');
|
||||
}
|
||||
var filename = 'libs/project/floors/' + editor.currentFloorId + '.js';
|
||||
var datastr = ['main.floors.' , editor.currentFloorId , '=\n{'];
|
||||
for(var ii in editor.currentfloorData)
|
||||
if (editor.currentfloorData.hasOwnProperty(ii)) {
|
||||
if (ii=='map')
|
||||
datastr=datastr.concat(['\n"',ii,'": [\n',formatMap(editor.currentfloorData[ii]),'\n],']);
|
||||
else
|
||||
datastr=datastr.concat(['\n"',ii,'": ',JSON.stringify(editor.currentfloorData[ii],null,4),',']);
|
||||
}
|
||||
datastr=datastr.concat(['\n}']);
|
||||
datastr=datastr.join('');
|
||||
fs.writeFile(filename,datastr,'utf-8',function(err, data){
|
||||
if (isset(callback)) callback(err);
|
||||
});
|
||||
}
|
||||
//callback(err:String)
|
||||
editor_file.saveFloorFileAs = function(editor,saveAsFilename,callback){
|
||||
if (isset(callback)) callback(null);
|
||||
//saveAsFilename不含'/'不含'.js'
|
||||
if (!isset(editor.currentfloorData)) {
|
||||
if (isset(callback)) callback('无数据');
|
||||
}
|
||||
editor.currentfloorData.floorId=saveAsFilename;
|
||||
editor.currentFloorId=saveAsFilename;
|
||||
editor_file.saveFloorFile(editor,callback);
|
||||
}
|
||||
//callback(err:String)
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
editor_file.changeIdAndIdnum = function(editor,id,idnum,callback){
|
||||
if (isset(callback)) callback(null);
|
||||
if (isset(callback)) callback('尚未实现');
|
||||
}
|
||||
//callback(err:String)
|
||||
editor_file.editItem = function(editor,id,obj,callback){
|
||||
@ -86,4 +132,22 @@
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
var formatMap = function(mapArr){
|
||||
//把13*13或者1*169数组格式化
|
||||
var formatArrStr = '';
|
||||
var arr = JSON.stringify(mapArr).replace(/\s+/g, '').split('],[');
|
||||
for(var i =0; i<13; i++){
|
||||
var a = [];
|
||||
formatArrStr +=' [';
|
||||
if(i==0||i==12) a = arr[i].split(/\D+/).join(' ').trim().split(' ');
|
||||
else a = arr[i].split(/\D+/);
|
||||
for(var k=0; k<13; k++){
|
||||
var num = parseInt(a[k]);
|
||||
formatArrStr += Array(Math.max(4-String(num).length,0)).join(' ')+num+(k==12?'':',');
|
||||
}
|
||||
formatArrStr += ']'+(i==12?'':',\n');
|
||||
}
|
||||
return formatArrStr;
|
||||
}
|
||||
})();
|
||||
23
_server/editor_file_test.html
Normal file
23
_server/editor_file_test.html
Normal file
@ -0,0 +1,23 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head><meta charset="utf-8"></head>
|
||||
<body>
|
||||
<pre id='pout'>
|
||||
|
||||
</pre>
|
||||
<script src="fs.js"></script>
|
||||
<script src="editor_file.js"></script>
|
||||
<script>
|
||||
pout.innerHTML='waiting\nwaiting waiting';
|
||||
var editor={};
|
||||
editor.fs=fs;
|
||||
editor.file=editor_file;
|
||||
editor.file.loadFloorFile(editor,'sample0',function(err){console.log(err);
|
||||
editor.file.saveFloorFileAs(editor,'aaa',function(err){console.log(err)});
|
||||
});
|
||||
|
||||
pout.innerHTML='succeed\nsucceed succeed';
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in New Issue
Block a user