phaser3-rex-plugins
Version:
203 lines (184 loc) • 4.9 kB
TypeScript
import ComponentBase from '../../utils/componentbase/ComponentBase';
export default Scroller;
declare namespace Scroller {
/**
* Orientation identifiers.
*/
type OrientationType = 0 | 1 | 'x' | 'y' | 'v' | 'vertical' | 'h' | 'horizontal';
/**
* Callback for value changes.
*/
type ValueChangeCallbackType = (newValue: number, oldValue: number) => void;
/**
* Scroller configuration.
*/
interface IConfig {
/**
* Bounds in order: bottom, top.
*/
bounds?: [
bottomBound: number,
topBound: number
],
/**
* Initial value.
*/
value?: number,
/**
* Snap step value.
*/
snapStep?: number,
/**
* Drag threshold in pixels.
*/
threshold?: number,
/**
* Sliding deceleration.
*/
slidingDeceleration?: number,
/**
* Back deceleration.
*/
backDeceleration?: number,
/**
* True to reverse drag direction.
*/
dragReverse?: boolean,
/**
* Drag rate.
*/
dragRate?: number,
/**
* True to release on pointer out.
*/
pointerOutRelease?: boolean,
/**
* True to use rect bounds for interaction.
*/
rectBoundsInteractive?: boolean,
/**
* True to enable.
*/
enable?: boolean,
/**
* Scroller orientation.
*/
orientation?: OrientationType,
/**
* Callback on value change.
*/
valuechangeCallback?: ValueChangeCallbackType,
/**
* Callback scope for value change.
*/
valuechangeCallbackScope?: Object,
/**
* Callback when over max.
*/
overmaxCallback?: ValueChangeCallbackType,
/**
* Callback scope for over max.
*/
overmaxCallbackScope?: Object,
/**
* Callback when over min.
*/
overminCallback?: ValueChangeCallbackType,
/**
* Callback scope for over min.
*/
overminCallbackScope?: Object,
}
namespace Events {
/**
* Value change callback.
*/
type ValueChageCallbackType = (newValue: number, oldValue: number) => void;
}
}
/**
* Scroller input component.
*/
declare class Scroller extends ComponentBase {
/**
* Create a Scroller component.
* @param gameObject - Target game object.
* @param config - Scroller configuration.
*/
constructor(
gameObject: Phaser.GameObjects.GameObject,
config?: Scroller.IConfig
);
/**
* Enable or disable scrolling.
* @param enable - True to enable.
* @returns This instance.
*/
setEnable(enable?: boolean): this;
/**
* Toggle enable state.
* @returns This instance.
*/
toggleEnable(): this;
/**
* True if enabled.
*/
enable: boolean;
/**
* Set bounds.
* @param bound0 - Bottom or first bound.
* @param bound1 - Top or second bound.
* @returns This instance.
*/
setBounds(bound0: number, bound1: number): this;
/**
* Set bounds by array.
* @param bounds - Bounds array.
* @returns This instance.
*/
setBounds(bounds: [bottomBound: number, topBound: number]): this;
/**
* Set sliding deceleration.
* @param dec - Deceleration value or false to disable.
* @returns This instance.
*/
setSlidingDeceleration(dec: number | false): this;
/**
* Set back deceleration.
* @param dec - Deceleration value or false to disable.
* @returns This instance.
*/
setBackDeceleration(dec: number | false): this;
/**
* Set current value.
* @param value - Value to set.
* @param clamp - True to clamp within bounds.
* @returns This instance.
*/
setValue(value: number, clamp?: boolean): this;
/**
* Add to current value.
* @param inc - Increment value.
* @param clamp - True to clamp within bounds.
* @returns This instance.
*/
addValue(inc: number, clamp?: boolean): this;
/**
* Current value.
*/
value: number;
/**
* Set snap step.
* @param snapStep - Snap step value.
* @returns This instance.
*/
setSnapStep(snapStep?: number): this;
/**
* True if dragging is in progress.
*/
readonly isDragging: boolean;
/**
* Current state value.
*/
readonly state: string;
}