UNPKG

ngx-spine

Version:

[![Build Status](https://travis-ci.org/PoiScript/ngx-spine.svg?branch=master)](https://travis-ci.org/PoiScript/ngx-spine)

163 lines (162 loc) 7.14 kB
/****************************************************************************** * Spine Runtimes License Agreement * Last updated May 1, 2019. Replaces all prior versions. * * Copyright (c) 2013-2019, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and * conditions of Section 2 of the Spine Editor License Agreement: * http://esotericsoftware.com/spine-editor-license * * Otherwise, it is permitted to integrate the Spine Runtimes into software * or otherwise create derivative works of the Spine Runtimes (collectively, * "Products"), provided that each user of the Products must obtain their own * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS * INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ import { IntSet, Pool } from "./Utils"; import { Event } from "./Event"; import { Animation, MixBlend, Timeline } from "./Animation"; import { AnimationStateData } from "./AnimationStateData"; import { Skeleton } from "./Skeleton"; export declare class AnimationState { static emptyAnimation: Animation; static SUBSEQUENT: number; static FIRST: number; static HOLD: number; static HOLD_MIX: number; static NOT_LAST: number; data: AnimationStateData; tracks: TrackEntry[]; events: Event[]; listeners: AnimationStateListener2[]; queue: EventQueue; propertyIDs: IntSet; animationsChanged: boolean; timeScale: number; trackEntryPool: Pool<TrackEntry>; constructor(data: AnimationStateData); update(delta: number): void; updateMixingFrom(to: TrackEntry, delta: number): boolean; apply(skeleton: Skeleton): boolean; applyMixingFrom(to: TrackEntry, skeleton: Skeleton, blend: MixBlend): number; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, blend: MixBlend, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void; queueEvents(entry: TrackEntry, animationTime: number): void; clearTracks(): void; clearTrack(trackIndex: number): void; setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; setEmptyAnimations(mixDuration: number): void; expandToIndex(index: number): TrackEntry; trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; disposeNext(entry: TrackEntry): void; _animationsChanged(): void; computeHold(entry: TrackEntry): void; computeNotLast(entry: TrackEntry): void; getCurrent(trackIndex: number): TrackEntry; addListener(listener: AnimationStateListener2): void; /** Removes the listener added with {@link #addListener(AnimationStateListener)}. */ removeListener(listener: AnimationStateListener2): void; clearListeners(): void; clearListenerNotifications(): void; } export declare class TrackEntry { animation: Animation; next: TrackEntry; mixingFrom: TrackEntry; mixingTo: TrackEntry; listener: AnimationStateListener2; trackIndex: number; loop: boolean; holdPrevious: boolean; eventThreshold: number; attachmentThreshold: number; drawOrderThreshold: number; animationStart: number; animationEnd: number; animationLast: number; nextAnimationLast: number; delay: number; trackTime: number; trackLast: number; nextTrackLast: number; trackEnd: number; timeScale: number; alpha: number; mixTime: number; mixDuration: number; interruptAlpha: number; totalAlpha: number; mixBlend: MixBlend; timelineMode: number[]; timelineHoldMix: TrackEntry[]; timelinesRotation: number[]; reset(): void; getAnimationTime(): number; setAnimationLast(animationLast: number): void; isComplete(): boolean; resetRotationDirections(): void; } export declare class EventQueue { objects: Array<any>; drainDisabled: boolean; animState: AnimationState; constructor(animState: AnimationState); start(entry: TrackEntry): void; interrupt(entry: TrackEntry): void; end(entry: TrackEntry): void; dispose(entry: TrackEntry): void; complete(entry: TrackEntry): void; event(entry: TrackEntry, event: Event): void; drain(): void; clear(): void; } export declare enum EventType { start = 0, interrupt = 1, end = 2, dispose = 3, complete = 4, event = 5 } export interface AnimationStateListener2 { /** Invoked when this entry has been set as the current entry. */ start(entry: TrackEntry): void; /** Invoked when another entry has replaced this entry as the current entry. This entry may continue being applied for * mixing. */ interrupt(entry: TrackEntry): void; /** Invoked when this entry is no longer the current entry and will never be applied again. */ end(entry: TrackEntry): void; /** Invoked when this entry will be disposed. This may occur without the entry ever being set as the current entry. * References to the entry should not be kept after dispose is called, as it may be destroyed or reused. */ dispose(entry: TrackEntry): void; /** Invoked every time this entry's animation completes a loop. */ complete(entry: TrackEntry): void; /** Invoked when this entry's animation triggers an event. */ event(entry: TrackEntry, event: Event): void; } export declare abstract class AnimationStateAdapter2 implements AnimationStateListener2 { start(entry: TrackEntry): void; interrupt(entry: TrackEntry): void; end(entry: TrackEntry): void; dispose(entry: TrackEntry): void; complete(entry: TrackEntry): void; event(entry: TrackEntry, event: Event): void; }