UNPKG

@eva/react-eva-spine

Version:

React EVA是一个让开发同学能够在React技术体系下,利用EVA JS的游戏研发能力,开发动画、游戏类场景的框架。它可以让开发同学用熟悉的JSX和Hooks语法编写动画、游戏场景的代码。

52 lines (43 loc) 1.4 kB
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;