@eva/react-eva-spine
Version:
React EVA是一个让开发同学能够在React技术体系下,利用EVA JS的游戏研发能力,开发动画、游戏类场景的框架。它可以让开发同学用熟悉的JSX和Hooks语法编写动画、游戏场景的代码。
52 lines (43 loc) • 1.4 kB
TypeScript
import {RefObject} from 'react';
import {
EvaRefObject,
ResourceItem,
ResourceIdentify,
ResourceSchema,
EVAComponentProps
} from '@eva/react-eva';
import {Spine as SpineComponent, SpineParams as SpineInitParams} from '@eva/plugin-renderer-spine';
declare global {
namespace EVA {
interface EvaRefObject {
Spine?: SpineComponent
}
interface ResourceSchema {
SPINE: {
name?: string;
image: string | ResourceItem<'png' | 'jpg' | 'jpeg' | 'webp' | 'svg'>;
atlas: string | ResourceItem<'atlas'>;
ske: string | ResourceItem<'json'>;
};
}
}
}
type SpineEvents =
| 'complete';
export interface SpineRefObject extends EvaRefObject {
play(animationName: string, loop: boolean): SpineRefObject;
stop(): SpineRefObject;
on(eventName: SpineEvents, fn: () => void): SpineRefObject;
off(eventName: SpineEvents, fn: () => void): SpineRefObject;
once(eventName: SpineEvents, fn: () => void): SpineRefObject;
}
type SpineParams = SpineInitParams & {
loop?: boolean;
}
interface SpineProps extends EVAComponentProps, SpineInitParams {
ref?: RefObject<SpineRefObject>;
src?: ResourceSchema['SPINE'];
}
export function useSpineResource(src: ResourceSchema['SPINE']): ResourceIdentify;
export function useSpine(params: SpineParams): SpineComponent;
export default function Spine(props: SpineProps): JSX.Element;