@eva/react-eva-dragonbone
Version:
React EVA是一个让开发同学能够在React技术体系下,利用EVA JS的游戏研发能力,开发动画、游戏类场景的框架。它可以让开发同学用熟悉的JSX和Hooks语法编写动画、游戏场景的代码。
58 lines (51 loc) • 1.7 kB
TypeScript
import {RefObject} from 'react';
import {
EvaRefObject,
ResourceIdentify,
ResourceItem,
ResourceSchema,
EVAComponentProps
} from '@eva/react-eva';
import {DragonBone as DragonBoneComponent, DragonBoneParams as DragonBoneInitParams} from '@eva/plugin-renderer-dragonbone';
declare global {
namespace EVA {
interface EvaRefObject {
DragonBone?: DragonBoneComponent;
}
interface ResourceSchema {
DRAGONBONE: {
name?: string;
image: string | ResourceItem<'png' | 'jpg' | 'jpeg' | 'webp' | 'svg'>;
tex: string | ResourceItem<'json'>;
ske: string | ResourceItem<'json'>;
};
}
}
}
type DragonBoneEvents =
| 'start'
| 'loopComplete'
| 'complete'
| 'fadeIn'
| 'fadeInComplete'
| 'fadeOut'
| 'fadeOutComplete'
| 'frameEvent'
| 'soundEvent';
export interface DragonBoneRefObject extends EvaRefObject {
play(animationName: string, times?: number): DragonBoneRefObject;
stop(animationName: string): DragonBoneRefObject;
on(eventName: DragonBoneEvents, fn: () => void): DragonBoneRefObject;
off(eventName: DragonBoneEvents, fn: () => void): DragonBoneRefObject;
once(eventName: DragonBoneEvents, fn: () => void): DragonBoneRefObject;
}
type DragonBoneParams = DragonBoneInitParams & {
playTimes?: number;
}
interface DragonBoneProps extends EVAComponentProps, DragonBoneParams {
ref?: RefObject<DragonBoneRefObject>;
src?: ResourceSchema['DRAGONBONE'];
}
export function useDragonBoneResource(src: ResourceSchema['DRAGONBONE']): ResourceIdentify;
export function useDragonBone(params: DragonBoneParams): DragonBoneComponent;
export default function DragonBone(props: DragonBoneProps): JSX.Element;