Skip to content

骨骼动画(Spine)

骨骼动画是指使用骨骼系统和动画系统来创建和播放动画的技术。它通常用于工程和动画应用中,用于创建复杂的角色动画和场景动画。 我们的骨骼动画需要使用Spine编辑器4.0.0来创建,

1、骨骼动画组件

typescript
this.spine = new LM.Spine();
this.addChild(this.spine);
this.spine.setSpine(
    ["Graphics/Spine/测试骨骼动画.png"],
     "Graphics/Spine/测试骨骼动画.json",
     "Graphics/Spine/测试骨骼动画.atlas",
)
this.spine.setActionList([
    {
      "name": "动作1",
      "action_type": 1
    }
])
this.spine.actionLoop = false;
this.spine.visible = true
this.spine.x = 0
this.spine.y = 0
this.spine.scaleX = 1
this.spine.scaleY = 1

2、常用属性

属性解释默认值
xx数值0
yy数值0
z图层高度,越高越靠上层数值0
width宽,图片超出范围会显示不完整数值,不填为自适应
height高,图片超出范围会显示不完整数值,不填为自适应
backgroundColor背景色字符串,填色号如红色“#FF0000”
visible是否可见布尔值,true可见,false不可见true
alpha不透明度数值,0~255,255表示完全不透明255
touchEnabled是否可点击布尔值,true可点击,false不可点击true
alphaHitUnable透明区域是否可点击布尔值,true可点击,false不可点击true
isPenetrable是否可以穿透(点击到下层组件)布尔值,true可穿透,false不可穿透true
isMirrored是否镜像布尔值,true镜像,false不镜像false
scaleX宽缩放率数值,1原图大小的宽1
scaleY高缩放率数值,1原图大小的高1
zoomCenterX缩放中心x(相对于自身)数值,0.5为自身X轴中点0
zoomCenterY缩放中心y(相对于自身)数值,0.5为自身Y轴中点0
rotate旋转角度数值,角度,正数顺时针,负数逆时针0
rotateCenterX旋转中心x(相对于自身)数值,0.5为自身X轴中点0
rotateCenterY旋转中心y(相对于自身)数值,0.5为自身Y轴中点0
skin皮肤字符串
actionLoop是否循环播放布尔值false
playbackRate播放速率数值,1为标准速率1

其他属性见文档

3、常用方法

(1)onClick

点击行为

(2)onTouchDown

按下行为

(3)onTouchUp

抬起行为

(4)onTouchMove

鼠标在组件区域内移动(可用作悬浮)

(5)onTouchCancel

鼠标移出组件区域(可用作离开悬浮)

typescript
let spine = new LM.Spine()
// 注册了点击事件
spine.onClick(()=>{console.log("点击了控件")})
// 注册了按下事件
spine.onTouchDown(()=>{console.log("按下")})
// 注册了抬起事件
spine.onTouchUp(()=>{console.log("抬起")})
// 注册了移动事件
spine.onTouchMove(()=>{console.log("移动了")})
// 注册了移出事件
spine.onTouchCancel(()=>{console.log("移出")})

(6)setSpine

设置骨骼动画数据

(7)setActionList

设置动作列表

typescript
this.spine = new LM.Spine();
this.addChild(this.spine);
this.spine.setSpine(
    ["Graphics/Spine/测试骨骼动画.png"],
     "Graphics/Spine/测试骨骼动画.json",
     "Graphics/Spine/测试骨骼动画.atlas",
)
this.spine.setActionList([
    {
      "name": "动作1",
      "action_type": 1
    }
])