mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 19:34:47 +00:00
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
|
import { Asset } from "cc";
|
||
|
import { app } from "../App";
|
||
|
import { Sprite } from "cc";
|
||
|
import { SpriteFrame } from "cc";
|
||
|
import { Node } from "cc";
|
||
|
import { Component } from "cc";
|
||
|
|
||
|
export default class TbResource {
|
||
|
|
||
|
static load<T extends Asset>(res:string,onComplete?:((err: Error | null, data: T) => void)){
|
||
|
app.tbRes.get().load<T>(res,onComplete)
|
||
|
}
|
||
|
|
||
|
static loadSpriteFrame(res:string,sprite:Sprite,comp:Component){
|
||
|
|
||
|
this.load<SpriteFrame>(res,(err,data:SpriteFrame) => {
|
||
|
|
||
|
if(!data) return;
|
||
|
|
||
|
if(!sprite.isValid || !comp.isValid) {
|
||
|
//提前销毁
|
||
|
data.addRef();
|
||
|
data.decRef();
|
||
|
}
|
||
|
|
||
|
sprite.spriteFrame = data;
|
||
|
//添加引用标记
|
||
|
data.addRef();
|
||
|
|
||
|
//添加销毁资源引用
|
||
|
let onDestroy = comp["onDestroy"];
|
||
|
|
||
|
comp["onDestroy"] = () => {
|
||
|
if(onDestroy)
|
||
|
onDestroy.bind(comp)();
|
||
|
//销毁引用
|
||
|
if(sprite.isValid && sprite.spriteFrame == data) sprite.spriteFrame = null;
|
||
|
data.decRef();
|
||
|
}
|
||
|
|
||
|
})
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|