# Classes
- Asset
资源操作接口。
# Typedefs
- IReturnData :
object
# Asset
资源操作接口
Kind: global class
- Asset
- .loadAsset(object) ⇒
Promise.<engine.Entity>
- .loadAssetList(object) ⇒
Promise.<engine.Entity>
- .saveAsset(object) ⇒
Promise.<engine.Entity>
- .getAllScenesPath() ⇒
Promise
- .getAllPrefabPath() ⇒
Promise
- .readFile(opt) ⇒
Promise.<IReturnData>
|ArrayBuffer
|string
- .writeFile(opt) ⇒
Promise.<IReturnData>
- .getFileOrDirStat(opt) ⇒
Promise.<IReturnData>
|Stats
- .getUint64String(opt) ⇒
Promise.<IReturnData>
|string
- .getAllFileListInDir(opt) ⇒
Promise.<IReturnData>
|array
|string
|boolean
|string
|string
|string
|string
- .createSpriteFrameInfo(opt) ⇒
Promise.<IReturnData>
- .getFileDefaultDataByType(opt) ⇒
Promise.<IReturnData>
|*
- .loadAssetSuccessCallback :
function
- .loadAssetFailCallback :
function
- .loadAssetListSuccessCallback :
function
- .loadAssetListFailCallback :
function
- .saveAssetSuccessCallback :
function
- .saveAssetFailCallback :
function
- .loadAsset(object) ⇒
# asset.loadAsset(object) ⇒ Promise.<engine.Entity>
加载单个资源
Kind: instance method of Asset
Returns: Promise.<engine.Entity>
- 返回一个Promise对象。
Version: 0.1.28
Param | Type | Description |
---|---|---|
object | Object | |
object.assetPath | string | 资源路径, 相对于 assets 的相对路径, 如: 路径为 assets/Assets/1.prefab, 则传入的path 是 Assets/1.prefab |
object.success | loadAssetSuccessCallback | 注册成功回调 |
object.fail | loadAssetFailCallback | 注册失败回调 |
Example (Promise用法)
GameEditor.asset.loadAsset({
assetPath: 'myScene/1.prefab' // 传入资源路径, 相对于 assets 目录
}).then((entity) => {
console.log(entity)
}).catch((errMsg) => {
console.error(errMsg)
})
Example (注册回调用法)
GameEditor.asset.loadAsset({
assetPath: 'myScene/1.prefab' // 传入资源路径, 相对于 assets 目录
success: function(entity) {
console.log(entity)
},
fail: function(errMsg) {
console.error(errMsg)
}
})
# asset.loadAssetList(object) ⇒ Promise.<engine.Entity>
加载多个资源
Kind: instance method of Asset
Returns: Promise.<engine.Entity>
- 返回一个Promise对象
Version: 0.1.28
Param | Type | Description |
---|---|---|
object | Object | |
object.assetPathList | string | 资源路径数组 |
object.success | loadAssetListSuccessCallback | 注册成功回调 |
object.fail | loadAssetListFailCallback | 注册失败回调 |
Example (Promise用法)
GameEditor.asset.loadAsset({
assetPathList: ['assetPathxxxxx'] // 传入资源路径
}).then((entity) => {
console.log(entity)
}).catch((errMsg) => {
console.error(errMsg)
})
Example (注册回调用法)
GameEditor.asset.loadAsset({
assetPathList: ['assetPathxxxxx'] // 传入资源路径
success: function(entity) {
console.log(entity)
},
fail: function(errMsg) {
console.error(errMsg)
}
})
# asset.saveAsset(object) ⇒ Promise.<engine.Entity>
保存资源, 将内存中的内存对象落地到文件中
Kind: instance method of Asset
Returns: Promise.<engine.Entity>
- 返回一个Promise对象
Version: 0.1.28
Param | Type | Description |
---|---|---|
object | Object | |
object.assetPath | string | 资源路径 |
object.entity | engine.Entity | entity内存对象 |
object.success | saveAssetSuccessCallback | 注册成功回调 |
object.fail | saveAssetFailCallback | 注册失败回调 |
Example (Promise用法)
GameEditor.asset.loadAsset({
assetPathList: ['assetPathxxxxx'] // 传入资源路径
}).then((entity) => {
console.log(entity)
}).catch((errMsg) => {
console.error(errMsg)
})
Example (注册回调用法)
GameEditor.asset.loadAsset({
assetPathList: ['assetPathxxxxx'] // 传入资源路径
success: function(entity) {
console.log(entity)
},
fail: function(errMsg) {
console.error(errMsg)
}
})
# asset.getAllScenesPath() ⇒ Promise
获取所有Scene资源路径
Kind: instance method of Asset
Returns: Promise
-
Promise.reject {string} errMsg 错误信息
Promise.resolve {array} data 所有Scene资源路径
Version: 0.1.28
Example (获取所有Scene资源路径)
const scenePathList = GameEditor.getAllScenesPath()
console.log(scenePathList)
# asset.getAllPrefabPath() ⇒ Promise
获取所有Prefab资源路径
Kind: instance method of Asset
Returns: Promise
- 返回资源路径数组
Promise.reject {string} errMsg 错误信息
Promise.resolve {array} data 所有Prefab资源路径
Version: 0.1.28
Example (获取所有Prefab资源路径)
const prefabPathList = GameEditor.getAllPrefabPathSync()
console.log(prefabPathList)
# asset.readFile(opt) ⇒ Promise.<IReturnData>
| ArrayBuffer
| string
读取文件内容
Kind: instance method of Asset
Returns: Promise.<IReturnData>
- Promise返回IReturnData结构数据 ArrayBuffer
| string
- IReturnData.data 文件内容。当传入opt.encoding时,以string形式返回指定编码文件信息。否则,以ArrayBuffer形式返回文件信息
Version: 0.1.28
Param | Type | Description |
---|---|---|
opt | object | |
opt.file | string | 文件相对路径(相对于小程序项目目录) |
opt.encoding | string | 读取文件时使用的编码。具体值可参考Node.js文档中Buffer.from函数里encoding支持的值。为空时,以ArrayBuffer形式返回文件信息;非空时,以string形式返回指定编码文件信息。 |
Example (readFile示例1:)
const fileObject = await window.GameEditor.assets.readFile({
file: 'a/b.js', // 读取小程序项目目录下 a/b.js 文件内容
encoding: 'utf8' // 以utf8编码读取文件内容
});
if (fileObject.isSuccess) {
console.log('读取成功');
} else {
console.log('读取失败,失败原因:' + fileObject.errMsg);
}
Example (readFile示例2:)
const fileObject = await window.GameEditor.assets.readFile({
file: 'a/b.js', // 读取小程序项目目录下 a/b.js 文件内容
});
if (fileObject.isSuccess && fileObject.data) {
const dv = new DataView(fileObject.data);
dv.getInt16(8);
}
# asset.writeFile(opt) ⇒ Promise.<IReturnData>
写入文件内容
Kind: instance method of Asset
Version: 0.1.28
Param | Type | Default | Description |
---|---|---|---|
opt | object | ||
opt.file | string | 文件相对路径(相对于小程序项目目录的assets目录) | |
opt.content | string | 写入的文件内容 | |
opt.encoding | string | "utf8" | 写入文件时使用的编码。具体值可参考Node.js文档中Buffer.from函数里encoding支持的值。默认utf8 |
Example (writeFile示例:)
const writeFileResult = await window.GameEditor.assets.writeFile({
file: 'a/b.js', // 往小程序项目目录下 assets/a/b.js 写入指定内容
content: 'this is file content',
encoding: 'utf8' // 可以不填,默认为utf8
});
if (writeFileResult.isSuccess) {
console.log('写入成功');
} else {
console.log('写入失败,失败原因:' + writeFileResult.errMsg);
}
# asset.getFileOrDirStat(opt) ⇒ Promise.<IReturnData>
| Stats
获取指定文件夹或文件状态
Kind: instance method of Asset
Returns: Promise.<IReturnData>
- Promise返回IReturnData结构数据 Stats
- IReturnData.data 文件或文件夹状态。详情可参考Node.js文档中fs.Stats结构
Version: 0.1.28
Param | Type | Description |
---|---|---|
opt | object | |
opt.path | string | 文件或文件夹相对路径(相对于小程序项目目录) |
Example (getFileOrDirStat示例:)
const stats = await window.GameEditor.assets.getFileOrDirStat({
path: 'a/b.js', // 小程序项目目录下文件 a/b.js
});
if (stats.isSuccess) {
console.log('获取状态成功');
console.log('atimeMs:' + stats.data.atimeMs);
} else {
console.log('获取状态失败,失败原因:' + stats.errMsg);
}
# asset.getUint64String(opt) ⇒ Promise.<IReturnData>
| string
将64位无符号整型转成字符串
Kind: instance method of Asset
Returns: Promise.<IReturnData>
- Promise返回IReturnData结构数据 string
- IReturnData.data 由opt.uint8Array转化的64位无符号整型字符串
Param | Type | Description |
---|---|---|
opt | object | |
opt.uint8Array | Uint8Array | 64位无符号整型组成的长度为8的Uint8Array,数据必须是大端字节序 |
Example (getUint64String示例:)
const fileObject = await window.GameEditor.assets.readFile({
file: 'a/b.js', // 读取小程序项目目录下 a/b.js 文件内容
});
if (fileObject.isSuccess && fileObject.data) {
// 将读取的a/b.js文件头8个字节组成的64位无符号整型转成字符串。注意:数据本身符合大端字节序
const id = await window.GameEditor.assets.getUint64String({
uint8Array: new Uint8Array(fileObject.data, 0, 8);
});
}
# asset.getAllFileListInDir(opt) ⇒ Promise.<IReturnData>
| array
| string
| boolean
| string
| string
| string
| string
获取指定目录下的文件信息(不包含文件内容)
Kind: instance method of Asset
Returns: Promise.<IReturnData>
- Promise返回IReturnData结构数据 array
- IReturnData.data 查询到的文件列表信息 string
- data[].path 文件或文件夹相对小程序项目路径 boolean
- data[].isFile true:文件;false:目录 string
- data[].name 如果是文件,表示不带扩展名的文件名。如果是文件夹,此字段undefined string
- data[].dir 如果是文件,表示文件的父目录,相对小程序项目。如果是文件夹,此字段undefined string
- data[].base 如果是文件,表示带扩展名的文件名。如果是文件夹,此字段undefined string
- data[].ext 如果是文件,表示扩展名,如.exe。如果是文件夹,此字段undefined
Param | Type | Default | Description |
---|---|---|---|
opt | object | ||
opt.path | string | 目录相对路径(相对于小程序项目目录) | |
opt.includeDir | boolean | false | true:子目录信息也会返回。false:只返回文件信息 |
opt.recursive | boolean | false | true:递归返回opt.path及其子目录所有信息;false:只返回opt.path 下信息 |
Example (getAllFileListInDir示例:)
const filesListResult = await window.GameEditor.assets.getAllFileListInDir({
path: 'a/b', // 在小程序项目目录下 a/b 目录查找
includeDir: false, // 只返回文件信息
recursive: true, // 深度遍历子目录
});
if (!filesListResult.isSuccess) { // 失败
console.log('失败原因:' + filesListResult.errMsg);
}
if (filesListResult.data.length === 0) { // 没有文件
console.log('文件夹下没有文件');
}
const task = []; // 读取文件任务
const filesList = filesListResult.data; // 文件列表
for (let i = 0, il = filesList.length; i < il; i++) {
let a = filesList[i];
if (a.isFile && a.ext === '.txt') { // 如果是文件且扩展名是.txt
task.push((async () => { // 创建任务
let fileObject: object = await window.GameEditor.assets.readFile({ // 读取文件内容,返回ArrayBuffer
file: a.path // a.path是文件相对于小程序项目目录路径
});
return fileObject;
}) ());
}
}
const fileObjects = await Promise.all(task); // 执行读取文件任务
# asset.createSpriteFrameInfo(opt) ⇒ Promise.<IReturnData>
根据指定texture2d图片信息,在assets目录下生成spriteframe信息。生成后的spriteframe文件目录结构跟texture2d目录结构保持一致
Kind: instance method of Asset
Returns: Promise.<IReturnData>
- Promise返回IReturnData结构数据
Param | Type | Description |
---|---|---|
opt | object | |
opt.distPath | string | 目标目录相对路径(相对于assets目录) |
opt.imgInfo | object | texture2d图片文件信息 |
imgInfo.imgPath | string | texture2d图片相对路径(相对于小程序根目录) |
imgInfo.texture2dData | object | texture2d图片信息。默认数据结构需通过getFileDefaultDataByType获取 |
opt.rect | Array | texture2d图片里的spriteframe区域块信息 |
rect[].id | string | 区域id,用于生成spritefram描述文件名 |
rect[].x | number | 区域左上角x坐标(texture2d图片左上角坐标为(0,0)) |
rect[].y | number | 区域左上角y坐标 |
rect[].w | number | 区域长度 |
rect[].h | number | 区域宽度 |
Example (获取texture2d默认数据,并生成spriteframe文件)
const texture2dResult = window.GameEditor.assets.getFileDefaultDataByType({
type: 'texture2d'
});
if (!texture2dResult.isSuccess) { // 失败
console.log('失败原因:' + texture2dResult.errMsg);
}
// 根据图片信息,设置对应字段
const texture2dDefaultData = texture2dResult.data;
texture2dDefaultData.width = 128; // 图片宽度
texture2dDefaultData.height = 128; // 图片高度
// todo set any other texture2d info
// 创建spriteframe文件
const spriteFrameResult = await window.GameEditor.assets.createSpriteFrameInfo({
distPath: 'customerSpriteFrame', // 生成的文件输出到 assets/customerSpriteFrame 目录下
imgInfo: {
imgPath: 'a/b.png', // texture2d图片相对路径,即小程序项目目录下 a/b.png
texture2dData: texture2dDefaultData // a/b.png texture2d图片的信息
},
rect: [{ // a/b.png图片的spriteframe信息
id: 'i_am_id',
x: 0,
y: 0,
h: 10,
w: 10
}]
});
if (!spriteFrameResult.isSuccess) {
console.log('失败原因:' + texture2dResult.errMsg);
} else {
console.log('成功');
}
# asset.getFileDefaultDataByType(opt) ⇒ Promise.<IReturnData>
| *
根据类型获取对应文件数据结构
Kind: instance method of Asset
Returns: Promise.<IReturnData>
- Promise返回IReturnData结构数据 *
- IReturnData.data 对应类型的默认数据结构
Param | Type | Description |
---|---|---|
opt | object | |
opt.type | string | 文件类型。folder,2dScene,3dScene,2dPrefab,3dPrefab,spriteframe,font,texture2d,material,effect |
Example (获取texture2d默认数据,并生成spriteframe文件)
const texture2dResult = window.GameEditor.assets.getFileDefaultDataByType({
type: 'texture2d'
});
if (!texture2dResult.isSuccess) { // 失败
console.log('失败原因:' + texture2dResult.errMsg);
}
// 根据图片信息,设置对应字段
const texture2dDefaultData = texture2dResult.data;
texture2dDefaultData.width = 128; // 图片宽度
texture2dDefaultData.height = 128; // 图片高度
// todo set any other texture2d info
// 创建spriteframe文件
const spriteFrameResult = await window.GameEditor.assets.createSpriteFrameInfo({
distPath: 'customerSpriteFrame', // 生成的文件输出到 assets/customerSpriteFrame 目录下
imgInfo: {
imgPath: 'a/b.png', // texture2d图片相对路径,即小程序项目目录下 a/b.png
texture2dData: texture2dDefaultData // a/b.png texture2d图片的信息
},
rect: [{ // a/b.png图片的spriteframe信息
id: 'i_am_id',
x: 0,
y: 0,
h: 10,
w: 10
}]
});
if (!spriteFrameResult.isSuccess) {
console.log('失败原因:' + texture2dResult.errMsg);
} else {
console.log('成功');
}
# asset.loadAssetSuccessCallback : function
loadAsset 成功回调
Kind: instance typedef of Asset
Param | Type | Description |
---|---|---|
entity | engine.Entity | assetPath对应的Entity内存对象 |
# asset.loadAssetFailCallback : function
loadAsset 失败回调
Kind: instance typedef of Asset
Param | Type | Description |
---|---|---|
errMsg | string | 错误信息 |
# asset.loadAssetListSuccessCallback : function
loadAssetList 成功回调
Kind: instance typedef of Asset
Param | Type | Description |
---|---|---|
entity | engine.Entity | assetPath对应的Entity内存对象 |
# asset.loadAssetListFailCallback : function
loadAssetList 失败回调
Kind: instance typedef of Asset
Param | Type | Description |
---|---|---|
errMsg | string | 错误信息 |
# asset.saveAssetSuccessCallback : function
saveAsset 成功回调
Kind: instance typedef of Asset
Param | Type | Description |
---|---|---|
entity | engine.Entity | assetPath对应的Entity内存对象 |
# asset.saveAssetFailCallback : function
saveAsset 失败回调
Kind: instance typedef of Asset
Param | Type | Description |
---|---|---|
errMsg | string | 错误信息 |
# IReturnData : object
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
isSuccess | boolean | true:成功, false:失败 |
errMsg | string | 错误信息 |
data | * | 接口返回的数据。详见具体接口说明 |