LAYA 骨骼动画

LayaAir引擎中模板是一种特别的概念,表示一种数据结构,这种数据结构可以被复用。骨骼动画就使用到了模板,对于同一个动画来说,可以只创建一个动画模板,然后实例多个播放的实例,这样内存中就只有一份的动画数据,但是却可以在舞台上显示多个动画。

创建骨骼动画代码
private var sk:Skeleton;
private function showSki():void{
    var t:Templet = new Templet();
    t.on(Event.COMPLETE,this,onLoaded,[t]);
    var url:String = "art/skin,sk";
    t.loadAni(url);
}

private function onLoaded(t:Templet):void{
    if(this.destoryed){
        return;
    }
    if(sk == null || sk.url == t.url){
        if(sk!=null){
            sk.destoryed(true);
        }
        //从动画模板创建动画播放对象
        sk = t.buildArmature(0);
        sk.pos(100,100);
        addChildAt(sk,0);
        displayedInStage&&sk.play(0,false);
    }
}

骨骼动画创建动画有三种方式

​ 0:使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装)

​ 1:使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存。(内存开销大,计算开销小,支持换装)

​ 2:使用动态方式,去实时去画(内存开销小,计算开销大,支持换装,不建议使用)

​ 这三种模式中 0:不支持换装,1,2支持换装。

一般情况下,用默认值0就行了。至于换装,更常见的是一套外观用专用的资源,切换外观时直接切换调用的资源。

骨骼动画的换装(可以不看,创建骨骼动画的时候基本上可以直接复制以上代码,修改URL即可,如果有特殊要求,再加上相应代码)

Templet提供的API

显示指定皮肤

showSkinByIndex()

通过皮肤名字得到皮肤索引

getSkinIndexByName()

骨骼动画还能在播放的时候切换动画的动作,比如可以把人物的跑攻击等动作放到同一个动画文件里面,使用的时候只要通过代码切换动作就可以了。

发布了61 篇原创文章 · 获赞 2 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_22794043/article/details/89314184