three.js editor 加载时读取浏览器数据库中数据
时间: 2023-09-17 22:12:46 浏览: 83
要在three.js编辑器加载时从浏览器中读取数据并使用它来设置场景,可以使用以下代码:
```
let request = indexedDB.open('myDatabase', 1);
request.onerror = function(event) {
console.log('打开数据库出错!');
};
request.onsuccess = function(event) {
let db = event.target.result;
let transaction = db.transaction(['myStore'], 'readonly');
let objectStore = transaction.objectStore('myStore');
let cursor = objectStore.openCursor();
cursor.onsuccess = function(event) {
let result = event.target.result;
if (result) {
let data = result.value;
let sceneData = JSON.parse(data.name);
editor.fromJSON(sceneData);
result.continue();
} else {
// 如果没有存储的数据,则使用默认场景
editor.signals.sceneGraphChanged.dispatch();
}
};
transaction.oncomplete = function(event) {
db.close();
};
};
```
这段代码使用IndexedDB API打开名为“myDatabase”的数据库,并创建一个只读事务。然后,它打开“myStore”存储的游标,并在游标移动时解析数据的“name”属性并使用它来设置编辑器的场景。最后,它关闭数据库连接。如果打开数据库时出现错误,将在控制台输出错误消息。如果没有存储的数据,则使用默认场景并调用场景图变更信号。
阅读全文