Layaair DragonBones 龙骨动画的播放
Layaair DragonBones 龙骨动画的播放
本文要点:
- 龙骨动画的导入
- 龙骨动画的播放控制
- 龙骨动画的事件机制
官方文档入口
本节大概效果
龙骨动画的导入:
Layair 导入龙骨动画:
一般导入到 Bin 目录的 Src目录里面,在这里 我创建了一个hero的目录
龙骨动画的加载和播放控制
这是一个 循环播放动画的例子
//这是一个 循环播放动画的例子let templetStone: Laya.Templet = new Laya.Templet();
templetStone.on(Laya.Event.COMPLETE, this, () => {//创建第一个动画var skeleton: Laya.Skeleton;//从动画模板创建动画播放对象skeleton = templetStone.buildArmature(0);skeleton.pos(128, 665);//切换动画皮肤 使用标号为0的皮肤skeleton.showSkinByIndex(0);//播放skeleton.play(0, true);this.addChild(skeleton);
});
templetStone.loadAni("res/anima/stone/钱袋动画.sk");
这是一个 有两段 动画的例子, 主角的 空闲时动画 和 一个触发动画
//Hero动画
this.templetHero = new Laya.Templet();
this.templetHero.on(Laya.Event.COMPLETE, this, () => {//创建第一个动画// var skeleton: Laya.Skeleton;// //从动画模板创建动画播放对象this.skeletonHero = this.templetHero.buildArmature(0);this.skeletonHero.pos(350, 620);//切换动画皮肤 使用标号为0的皮肤this.skeletonHero.showSkinByIndex(0);//播放//this.skeletonHero.play(1, true);//动画事件this.skeletonHero.on(Laya.Event.LABEL, this, (event) => {let tEventData: Laya.EventData = event as Laya.EventData;if (tEventData.time > 100) {//console.log("动画事件 触发:", tEventData)Laya.SoundManager.playSound("res/sound/miming.mp3");//播放挖坑声音}});this.skeletonHero.on(Laya.Event.STOPPED, this, () => {this.isDigging = falsethis.ainPlayIdle()// console.log("Laya.Event.STOPPED this.isDigging :", this.isDigging)});this.ainPlayIdle()this.addChild(this.skeletonHero);});
this.templetHero.loadAni("res/anima/hero/矿工once.sk");
这个是 播放 第一段 空闲动画 和 播放 触发动画
// 空闲动画
private ainPlayIdle() {this.skeletonHero.play(1, true);
}
//触发动画
private ainPlayDig() {// if (!this.isDigging) {// this.isDigging = truethis.skeletonHero.play(0, false);// }
}
龙骨动画的事件机制
在动画播放的时候 我们还可以 触发事件,比方说 我的触发动画里有一个 挖矿的动作。我需要在 锄头碰到石头的时候 播放一个音效。
在龙骨动画制作的时候添加一个事件
这样一来 在播放动画的时候 就可以触发一个事件
layaair 是通过 Laya.Event.LABEL 来接收事件的
//动画事件
this.skeletonHero.on(Laya.Event.LABEL, this, (event) => {let tEventData: Laya.EventData = event as Laya.EventData;if (tEventData.time > 100) {//console.log("动画事件 触发:", tEventData)Laya.SoundManager.playSound("res/sound/miming.mp3");//播放挖坑声音}
});
有里有另外一个知识点
循环播放
当skeleton.play(0,true)第二个参数为true时,每播放完一遍龙骨动画,会自动触发Event.COMPLET事件
skeleton.player.on(Event.COMPLETE,this,onComplete);
播放一次
当skeleton.play(0,false)第二个参数为false时,当前动画播放完成后,会自动触发Event.STOPED事件,而不是Event.COMPLETE事件
skeleton.on(Event.STOPPED, this, completeHandler);
Layaair DragonBones 龙骨动画的播放相关推荐
- Layaair DragonBones 龙骨动画的换皮肤
Layaair DragonBones 龙骨动画的换皮肤 大体效果如下 官网的例子 DragonBones 我的代码 /* * name; */ class SceneMain extends ui ...
- 龙骨动画直接播放最后一帧
其实只是一个小技巧: spine.timeScale = 1000; 将动画节点的播放速度瞬间放大倍数,在一瞬间播完以达到直接播放最后一帧的效果.
- cocos 龙骨动画导出为spine 格式并播放
原文链接: cocos 龙骨动画导出为spine 格式并播放 上一篇: sharp 图像操作 根据图像颜色分布判断是否是白页 下一篇: puppeteer 为osc 博客 添加链接 效果 感觉是个大坑 ...
- cocos 播放龙骨动画,ios可能存在动画问题
修改ios项目代码. ## 引擎修改记录 ### 龙骨动画播放 Bug iOS 下修改 JSONDataParser.cpp 代码 ``` c++ // 修改 -----1------- // _fr ...
- Unity2D中代码创建一个龙骨动画(DragonBones)并换装
一:如何兼容使用龙骨动画 请参考https://www.cnblogs.com/NightFrost/p/9585296.html 插件下载地址https://github.com/DragonBon ...
- EgretMVC龙骨动画插入及播放
一.先初始化龙骨动画所需的文件资源 class FightLevelMain{public constructor() {var groupName: string = "preload&q ...
- [Unity][FairyGUI]场景中龙骨骨骼动画设置播放
Spine和DragonBones都是FairyGUI可以显示的骨骼动画. DragonBones骨骼动画显示. 首先得在Unity项目中配置 DragonBones的SDK. 在FairyGUI编辑 ...
- gamemaker学习笔记:导入龙骨动画
gamemaker的骨骼动画目前只是支持spine,但不支持龙骨的数据的格式.但目前可以通过一个转换的脚本来完成转换spine的格式实现这种方式. 下面是龙骨官方提供的一个转换spine的方式. ht ...
- Unity使用白鹭引擎的龙骨动画
最近有个项目,通过龙骨软件制作二维骨骼动画,之后放入Unity 下面放上龙骨的官网https://dragonbones.github.io/cn/index.html 首先,我们要导入龙骨 for ...
最新文章
- 关于DataGrid等控件中的自动编号
- Java中方法重载和方法重写的区别
- 【死磕Java并发】—–深入分析synchronized的实现原理
- 手把手教你python实现量价形态选股知乎_【手把手教你】Python实现基于事件驱动的量化回测...
- .net打包自动安装数据库
- 用windows api 计算文件的md5值
- 【ArcGIS|空间分析|网络分析】2 创建多模式网络数据集
- matlab仿真零中频接收机技术,经典又实用的零中频接收机的技术解决方案
- 十大热门编程语言的介绍
- 2017年5月24日--2018年5月26日
- oracle dbca静默安装,dbca 静默安装
- R400安装Windows2003网卡驱动
- MSP430F5529 入门心得
- u-boot源码个别分析
- Vue CLI脚手架安装及使用
- 泰坦尼克号python数据分析统计服_Kaggle入门级赛题:泰坦尼克号生还者预测——数据分析篇...
- 每日10行代码82:网上购物活动满减凑单计算器
- 使用web设计器制作图表报表
- 负电阻_三极管单管震荡电路
- 基于CRNN+CTC的改进图像文本识别算法