[Cocos Creator] 本地文件加载系列一:本地文件读取(web模式)
[Cocos Creator] 本地文件加载系列二:本地音频文件播放(web模式)
// TS代码
// 方法定义参考前文
readLocalFile(plistFile, READ_FILE_TYPE.TEXT, (plistResult: string | ArrayBuffer) => {
if (plistResult) {
let plistStr = plistResult.toString();
// plistParser 是从引擎代码里翻出来的,没有声明出来
if (plistStr && cc['plistParser'] && cc['plistParser'].parse) {
let plist = cc['plistParser'].parse(plistStr);
let imageFile: string = plist["textureFileName"];
if (imageFile) {
plist["textureFileName"] = '';
if (imgFile) {
readLocalFile(imgFile, READ_FILE_TYPE.DATA_URL, (imgResult: string | ArrayBuffer) => {
let fileBase64 = imgResult.toString();
// 方法定义参考前文
base64ToSpriteFrame(fileBase64, (spriteFrame: cc.SpriteFrame) => {
setParticle(plist, spriteFrame);
});
});
} else {
setParticle(plist, null);
}
}
}
}
});
// particle: cc.ParticleSystem = null;
setParticle(plist, spriteFrame: cc.SpriteFrame) {
// _initWithDictionary 也是从引擎代码里翻出来的
let initFunc: Function = particle["_initWithDictionary"];
if (initFunc) {
if (plist) {
particle.custom = false;
// particle.file = plist;
try {
initFunc.call(this.particle, plist);
} catch (err) { }
// particle._initWithDictionary(plist);
if (spriteFrame) {
particle.spriteFrame = spriteFrame;
}
particle.resetSystem();
}
}
}