Egret龙骨动画管理类

利用龙骨工具,生成动画具体看官方文档,导出得到三个文件:
如果觉得资源文件过大,可以选择无损压缩:png无损压缩
在这里插入图片描述
导入项目资源目录里
在这里插入图片描述
创建管理类:
在这里插入图片描述

class DragonBonesUtil {
    private static instance: DragonBonesUtil;
    public static get Instance() {
        if (this.instance == null) {
            this.instance = new DragonBonesUtil();
        }
        return this.instance;
    }
    //设置起始场景 重要点:在需要设置的动画页面在加载时设置如后面一个代码片段所示
    //如果页面切换,则需要重新设置
    public rootLayer: Scene
    
    public egretFactory: dragonBones.EgretFactory
    private armatureDisplay = null
    /** 创建龙骨核心 */
    public createArmature(level, state, x, y) {
    	//对应资源管理里的名称,自行拼接
        var dragonbonesData = RES.getRes(level + "-" + state + "_ske_json");
        var textureData = RES.getRes(level + "-" + state + "_tex_json");
        var texture = RES.getRes(level + "-" + state + "_tex_png");
        this.egretFactory = new dragonBones.EgretFactory();
        this.egretFactory.parseDragonBonesData(dragonbonesData);
        this.egretFactory.parseTextureAtlasData(textureData, texture);
        //设置动画名称,自行拼接
        this.armatureDisplay = this.egretFactory.buildArmatureDisplay(level + "-" + state);
        this.armatureDisplay.name = level + "-" + state
        this.rootLayer.addChildAt(this.armatureDisplay, 1);
        this.armatureDisplay.x = x;
        this.armatureDisplay.y = y;
        //开始动画
        this.armatureDisplay.animation.play("newAnimation");
    }
    //关闭动画
    public close(name) {
        if (this.rootLayer.getChildByName(name) && this.rootLayer.getChildByName(name).parent) {
            this.rootLayer.removeChild(this.rootLayer.getChildByName(name))
        }
    }
}

具体页面使用

在页面加载的时候执行这个:

DragonBonesUtil.Instance.rootLayer = this

具体设置动画:

DragonBonesUtil.Instance.createArmature(level, state, 420, 385)

需要清除动画时:

DragonBonesUtil.Instance.close("1-2")

你可能感兴趣的:(Egret)