three.js場景編輯器的一些初始配置信息存放在editor\js\Config.js下,當第一次加載的時候,編輯器會使用這個配置文件設置默認配置,並將這些配置信息存儲在瀏覽器的window.localStorage,當再次打開編輯器時會從瀏覽器本地的window.localStorage讀取這些配置,特別是當用戶自己設定了一些配置項時很有用。
//配置的內容,初始化時會依照這些內容進行初始化,修改完成保存,下次打開時會按照改變的東西初始化
var Config = function () {
var name = 'threejs-editor';
//默認初始化的內容
var storage = {
'language': 'en', //默認英語
'autosave': true, //默認自動保存
'theme': 'css/light.css', //默認主題
'project/title': '', //默認標題
'project/editable': false, //發佈的場景是否有編輯按鈕
'project/renderer': 'WebGLRenderer', //默認的渲染方式
'project/renderer/antialias': true, //默認的抗鋸齒
'project/renderer/shadows': true, //默認陰影開啓轉檯
'project/vr': false, //默認vr方式
'settings/history': false, //默認歷史
'settings/shortcuts/translate': 'w', //默認w爲平移
'settings/shortcuts/rotate': 'e', //默認e爲旋轉
'settings/shortcuts/scale': 'r', //默認r爲縮放
'settings/shortcuts/undo': 'z', //默認z爲撤銷
'settings/shortcuts/focus': 'f' //默認f爲設置焦點
};
//獲取localstring中的'threejs-editor'相關的值
if ( window.localStorage[ name ] === undefined ) { //如果沒有定義
window.localStorage[ name ] = JSON.stringify( storage ); //存儲默認值
} else { //如果已經定義
var data = JSON.parse( window.localStorage[ name ] ); //獲取瀏覽器localstring中的存儲的值
for ( var key in data ) {
//重新設置
storage[ key ] = data[ key ];
}
}
//返回接口
return {
//獲取信息
getKey: function ( key ) {
return storage[ key ];
},
//設置信息
setKey: function () { // key, value, key, value ...
for ( var i = 0, l = arguments.length; i < l; i += 2 ) {
//存儲信息
storage[ arguments[ i ] ] = arguments[ i + 1 ];
}
//保存到瀏覽器
window.localStorage[ name ] = JSON.stringify( storage );
//打印信息
console.log( '[' + /\d\d\:\d\d\:\d\d/.exec( new Date() )[ 0 ] + ']', 'Saved config to LocalStorage.' );
},
clear: function () {
//清空瀏覽器中存儲的信息
delete window.localStorage[ name ];
}
};
};