欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > AWTK 骨骼动画控件用法

AWTK 骨骼动画控件用法

2025/6/20 7:28:10 来源:https://blog.csdn.net/absurd/article/details/145381488  浏览:    关键词:AWTK 骨骼动画控件用法

创建骨骼动画控件

atlas 指定纹理图集文件,skeleton 指定骨骼动画数据文件。可以是相对路径或绝对路径。atlas 中引用的图片文件需要和 skeleton 文件在同一目录下。

scale_x 和 scale_y 指定缩放比例,根据实际情况调整。

scale_time 指定播放速度,1 表示正常速度,小于 1 表示减速,大于 1 表示加速。

action 指定动画名称,多个动画用逗号分隔。

示例:

  <spine2d name="spine2d" x="c" y="m" w="240" h="200" atlas="res/assets/default/raw/data/spineboy-pma.atlas"skeleton="res/assets/default/raw/data/spineboy-pro.skel" scale_x="0.5" scale_y="0.5" action="portal,run" />

播放动画

通过 spine2d_set_action 函数设置当前播放的动画名称。

/*** @method spine2d_set_action* 设置 当前动画名。* @annotation ["scriptable"]* @param {widget_t*} widget widget对象。* @param {const char*} action 当前动画名。** @return {ret_t} 返回RET_OK表示成功,否则表示失败。*/
ret_t spine2d_set_action(widget_t* widget, const char* action);

注册动画事件

通过 widget_on 函数注册动画事件。目前支持的事件有:

  • EVT_ANIM_START 动画开始事件
  • EVT_ANIM_ONCE 动画播放一次事件
  • EVT_ANIM_END 动画结束事件
static ret_t on_anim_start(void* ctx, event_t* e) {widget_animator_event_t* evt = widget_animator_event_cast(e);widget_animator_t* animator = (widget_animator_t*)evt->animator;log_debug("on_anim_start: %s\n", animator->name);return RET_OK;
}static ret_t on_anim_once(void* ctx, event_t* e) {widget_animator_event_t* evt = widget_animator_event_cast(e);widget_animator_t* animator = (widget_animator_t*)evt->animator;log_debug("on_anim_once: %s\n", animator->name);return RET_OK;
}static ret_t on_anim_end(void* ctx, event_t* e) {widget_animator_event_t* evt = widget_animator_event_cast(e);widget_animator_t* animator = (widget_animator_t*)evt->animator;log_debug("on_anim_end: %s\n", animator->name);return RET_OK;
}widget_child_on(win, "spine2d", EVT_ANIM_START, on_anim_start, win); widget_child_on(win, "spine2d", EVT_ANIM_END, on_anim_end, win); widget_child_on(win, "spine2d", EVT_ANIM_ONCE, on_anim_once, win); 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词