nedcrow

1. 특정 이름의 애니메이션 상태를 확인하고 싶습니다.
On/Off 상태 또는 시작/진행중/종료 상태를 어떻게 알 수 있나요?

if (skeletonMesh.getAniState('someName).end) somethingObj.position.x = 0;
// 특정 이름의 애니메이션 상태를 참고. 종료 시 위치 변경.


2. 또는 특정 이름의 애니메이션 상태를 참고하는 이벤트 함수를 등록하는 방법이 있을까요?

skeletonMesh.getAni('someName').addEventListener(()=>{}, 'end');
// 해당 이름의 애니메이션이 'end' 상태일 때 등록된 함수를 실행.

----------------------------------------------------------------
딱 맞는 방법이 없다면 비슷한 방법이라도 부탁드립니다!
nedcrow
  • Posts: 14

Nate

다음과 같이 현재 애니메이션 이름을 얻을 수 있습니다.
You can get the current animation name this way:
AnimationState state;
int trackIndex = 0;
TrackEntry entry = state.getCurrent(trackIndex);
String animationName;
if (entry == null)
animationName = null;
else
animationName = entry.getAnimation().getName();
물론 너무 길 필요는 없습니다.
It doesn't have to be so long, of course:
if (state.getCurrent(0) != null && state.getCurrent(0).getAnimation().getName() == "someName") { ... }
AnimationState에 항상 TrackEntry가 있다는 것을 알고 있다면 :
If you know the AnimationState always has a TrackEntry:
if (state.getCurrent(0).getAnimation().getName() == "someName") { ... }
여기에서 설명서를 볼 수 있습니다.
You can see documentation here:
API Reference - Spine Runtimes Guide

전체 AnimationState에 대해 AnimationState addListener를 사용하거나 하나의 항목에 대해 TrackEntry listener를 사용하여 리스너를 설정할 수 있습니다. 다음은 JavaScript를 사용한 예입니다.
You can set a listener using AnimationState addListener for the whole AnimationState, or TrackEntry listener for just one entry. Here is an example using JavaScript:
spine-runtimes/hoverboard.js at 3.8
더 많은 예제는 다음과 같습니다.
More examples here:
spine-runtimes/spine-ts/webgl/demos at 3.8
User avatar
Nate

Nate
  • Posts: 9722

nedcrow

두 가지 답변 모두 도움이 되었습니다. 감사합니다!
nedcrow
  • Posts: 14


Return to 한국어 Spine 사용자