SceneItem

SceneItem

manage Frame Keyframes and play keyframes.

Constructor

new SceneItem(propertiesopt, optionsopt)

Source:
Name Type Description
properties? any properties
options? Partial<SceneItemOptions> options
Example
const item = new SceneItem({
    0: {
        display: "none",
    },
    1: {
        display: "block",
        opacity: 0,
    },
    2: {
        opacity: 1,
    }
});

Extends

Methods

append(item)

Source:
Append the item or object at the last time.
Name Type Description
item SceneItem | IObject<any> the scene item or item object
Example
item.append(new SceneItem({
      0: {
          opacity: 0,
      },
      1: {
          opacity: 1,
      }
  }));
  item.append({
      0: {
          opacity: 0,
      },
      1: {
          opacity: 1,
      }
  });
  item.set(item.getDuration(), {
      0: {
          opacity: 0,
      },
      1: {
          opacity: 1,
      }
  });
Returns:
An instance itself

clear() → {SceneItem}

Source:
Clear All Frames
Returns:
An instance itself
Type
SceneItem

clone() → {SceneItem}

Source:
clone SceneItem.
Example
item.clone();
Returns:
An instance of clone
Type
SceneItem

emit(eventName, paramopt) → {boolean}

Source:
Overrides:
Fires an event to call listeners.
Name Type Default Description
eventName string | ... Event name
param? TargetParam<any> | ... {} Event parameter

emit<Name extends keyof Events, Param = Events[Name]>(eventName) → {boolean}

Name Type Description
eventName extends Param ? Name : never

emit<Name extends keyof Events, Param = Events[Name]>(eventName, param) → {boolean}

Name Type Description
eventName Name
param TargetParam<Param>
Example
import EventEmitter from "@scena/event-emitter";


const emitter = new EventEmitter();

emitter.on("a", e => {
});


emitter.emit("a", {
  a: 1,
});
Returns:
If false, stop the event.
Type
boolean

end() → {Animator}

Source:
Overrides:
end animator
Returns:
An instance itself.
Type
Animator

exportCSS(playConditionopt, durationopt, optionsopt) → {SceneItem}

Source:
Export the CSS of the items to the style.
Name Type Description
playCondition? PlayCondition Add a selector or className to play.
duration? number
options? AnimatorState[]
Returns:
An instance itself
Type
SceneItem

finish() → {Animator}

Source:
Overrides:
end animator
Returns:
An instance itself.
Type
Animator

forEach(callback) → {Keyframes}

Source:
executes a provided function once for each scene item.
Name Type Description
callback (item: Frame, time: number, items: IObject<Frame>) => void Function to execute for each element, taking three arguments
Returns:
An instance itself
Type
Keyframes

get(time, …args) → {Number|String|PropertyObejct}

Source:
Get properties of the sceneItem at that time
Name Type Attributes Description
time Number time
args String | Object <repeatable>
property's name or properties
Example
item.get(0, "a"); // item.getFrame(0).get("a");
  item.get(0, "transform", "translate"); // item.getFrame(0).get("transform", "translate");
Returns:
property value
Type
Number | String | PropertyObejct

getActiveDuration(delayopt) → {number}

Source:
Overrides:
Get the animator's total duration excluding delay
Name Type Description
delay? boolean
Example
animator.getActiveDuration();
Returns:
Total duration excluding delay
Type
number

getComputedFrame(time, parentEasingopt, isAccurateopt) → {Frame}

Source:
Get the computed frame corresponding to the time.
Name Type Description
time number
parentEasing? EasingType
isAccurate? boolean
Returns:
Type
Frame

getCurrentFrame(needUpdateopt, parentEasingopt) → {Frame}

Source:
Get the current computed frame. (If needUpdate is true, get a new computed frame, not the temp that has already been saved.)
Name Type Description
needUpdate? boolean
parentEasing? EasingType
Returns:
Type
Frame

getDelay() → {number}

Source:
Overrides:
Get a delay for the start of an animation.
Returns:
delay
Type
number

getDirection() → {DirectionType}

Source:
Overrides:
Get whether an animation should be played forwards, backwards or in alternate cycles.
Returns:
direction
Type
DirectionType

getDuration() → {number}

Source:
Overrides:
Get how long an animation should take to complete one cycle.
Returns:
duration
Type
number

getEasing() → {EasingType}

Source:
Overrides:
Get the speed curve of an animation.
Returns:
easing
Type
EasingType

getEasingName() → {string}

Source:
Overrides:
Get the speed curve's name
Returns:
the curve's name.
Type
string

getElements() → {AnimateElement[]}

Source:
Get the elements connected to SceneItem.
Returns:
Type
AnimateElement[]

getFillMode() → {FillModeType}

Source:
Overrides:
Get fill mode for the item when the animation is not playing (before it starts, after it ends, or both)
Returns:
fillMode
Type
FillModeType

getFrame(time) → {Frame}

Source:
get sceneItem's frame at that time
Name Type Description
time Number | ... frame's time

getFrame(time, ...names) → {Frame}

Name Type Description
time number | string
...names any[]
Example
const frame = item.getFrame(time);
Returns:
sceneItem's frame at that time
Type
Frame

getId() → {number|string}

Source:
Overrides:
Specifies the unique indicator of the animator
Returns:
the indicator of the item.
Type
number | string

getIterationCount() → {IterationCountType}

Source:
Overrides:
Get the number of times an animation should be played.
Returns:
iterationCount
Type
IterationCountType

getIterationTime() → {number}

Source:
Overrides:
Get the animator's current iteration time
Example
animator.getIterationTime();
Returns:
current iteration time
Type
number

getNowFrame(time, easingopt, isAccurateopt) → {Frame}

Source:
Get frame of the current time
Name Type Description
time Number the current time
easing? function the speed curve of an animation
isAccurate? boolean
Example
let item = new SceneItem({
      0: {
          display: "none",
      },
      1: {
          display: "block",
          opacity: 0,
      },
      2: {
          opacity: 1,
      }
  });
  // opacity: 0.7; display:"block";
  const frame = item.getNowFrame(1.7);
Returns:
frame of the current time
Type
Frame

getOrderObject()

Source:
get properties order object
Example
console.log(item.getOrderObject());

getOrders(names) → {NameType[] | undefined}

Source:
get properties orders
Name Type Description
names NameType[] property names
Example
item.getOrders(["display"]) // => []
      item.getOrders(["transform"]) // => ["translate", "scale"]
Returns:
Type
NameType[] | undefined

getPlaySpeed() → {number}

Source:
Overrides:
Get the animator's play speed
Returns:
playSpeed
Type
number

getPlayState() → {PlayStateType}

Source:
Overrides:
Get whether the animation is running or paused.
Returns:
playState
Type
PlayStateType

getTime() → {number}

Source:
Overrides:
Get the animator's current time
Example
animator.getTime();
Returns:
current time
Type
number

getTotalDuration() → {number}

Source:
Overrides:
Get the animator's total duration including delay
Example
animator.getTotalDuration();
Returns:
Total duration
Type
number

hasFrame(time) → {Boolean}

Source:
check if the item has a frame at that time
Name Type Description
time Number frame's time
Example
if (item.hasFrame(10)) {
      // has
  } else {
      // not
  }
Returns:
true: the item has a frame // false: not
Type
Boolean

hasName(args) → {boolean}

Source:
Check if keyframes has propery's name
Name Type Description
args string[] property's time
Example
item.hasName(["transform", "translate"]); // true or not
Returns:
true: if has property, false: not
Type
boolean

isDelay() → {boolean}

Source:
Overrides:
Check if the current state of animator is delayed.
Returns:
check delay state
Type
boolean

isEnded() → {boolean}

Source:
Overrides:
Check if the animator has reached the end.
Example
animator.isEnded(); // true or false
Returns:
ended
Type
boolean

isPaused() → {boolean}

Source:
Overrides:
Check if the animator is paused:
Example
animator.isPaused(); // true or false
Returns:
paused
Type
boolean

mergeFrame(time, frame) → {SceneItem}

Source:
merge frame of the previous time at the next time.
Name Type Description
time number | string The time of the frame to merge
frame Frame The target frame
Example
// getFrame(1) contains getFrame(0)
  item.merge(0, 1);
Returns:
An instance itself
Type
SceneItem

newFrame(time) → {Frame}

Source:
Create and add a frame to the sceneItem at that time
Name Type Description
time Number frame's time
Example
item.newFrame(time);
Returns:
Created frame.
Type
Frame

off(eventNameopt, listeneropt) → {this}

Source:
Overrides:
Remove listeners registered in the event target.
Name Type Description
eventName? string | object | ... Name of the event to be removed
listener? EventListener<Events[any], this> | ... listener function of the event to be removed

off<Name extends keyof Events, Param = Events[Name]>(eventName, listener) → {this}

Name Type Description
eventName? Name
listener? EventListener<Param, this>

off(events) → {this}

Name Type Description
events EventHash<Events, this>
Example
import EventEmitter from "@scena/event-emitter";
cosnt emitter = new EventEmitter();

// Remove all listeners.
emitter.off();

// Remove all listeners in "A" event.
emitter.off("a");


// Remove "listener" listener in "a" event.
emitter.off("a", listener);
Returns:
Type
this

on(eventName, listeneropt) → {this}

Source:
Overrides:
Add a listener to the registered event.
Name Type Description
eventName string | object | ... Name of the event to be added
listener? EventListener<Events[any], this> | ... listener function of the event to be added

on<Name extends keyof Events, Param = Events[Name]>(eventName, listener) → {this}

Name Type Description
eventName Name
listener EventListener<Param, this>

on(events) → {this}

Name Type Description
events EventHash<Events, this>
Example
import EventEmitter from "@scena/event-emitter";
cosnt emitter = new EventEmitter();

// Add listener in "a" event
emitter.on("a", () => {
});
// Add listeners
emitter.on({
 a: () => {},
 b: () => {},
});
Returns:
Type
this

once<Name extends keyof Events & string, Param = Events[Name]>(eventName, listeneropt) → {Promise<OnEvent<Param, this>>}

Source:
Overrides:
Add a disposable listener and Use promise to the registered event.
Name Type Description
eventName Name Name of the event to be added
listener? EventListener<Param, this> disposable listener function of the event to be added
Example
import EventEmitter from "@scena/event-emitter";
cosnt emitter = new EventEmitter();

// Add a disposable listener in "a" event
emitter.once("a", () => {
});

// Use Promise
emitter.once("a").then(e => {
});
Returns:
Type
Promise<OnEvent<Param, this>>

pause() → {Animator}

Source:
Overrides:
pause animator
Returns:
An instance itself.
Type
Animator

play(toTimeopt) → {Animator}

Source:
Overrides:
play animator
Name Type Description
toTime? number
Returns:
An instance itself.
Type
Animator

playCSS(isExportCSSopt, playClassNameopt, propertiesopt)

Source:
See:
Play using the css animation and keyframes.
Name Type Default Description
isExportCSS? true Check if you want to export css.
playClassName? string "startAnimation" Add a class name to play.
properties? object {} The shorthand properties for six of the animation properties.
Example
item.playCSS();
  item.playCSS(false, "startAnimation", {
      direction: "reverse",
      fillMode: "forwards",
  });

prepend(item)

Source:
Push the front frames for the time and prepend the scene item or item object.
Name Type Description
item SceneItem | IObject<any> the scene item or item object
Returns:
An instance itself

remove(time, propertiesopt) → {SceneItem}

Source:
remove properties to the sceneItem at that time
Name Type Description
time Number | ... time
properties? String | Object property names or values

remove(time, ...args) → {this}

Name Type Description
time string | number
...args any[]
Example
item.remove(0, "a");
Returns:
An instance itself
Type
SceneItem

removeFrame(time) → {SceneItem}

Source:
remove sceneItem's frame at that time
Name Type Description
time number | string frame's time

removeFrame(time, ...names) → {this}

Name Type Description
time number | string
...names any[]
Example
item.removeFrame(time);
Returns:
An instance itself
Type
SceneItem

set(time, propertiesopt) → {SceneItem}

Source:
Set properties to the sceneItem at that time
Name Type Description
time Number time
properties? String | Object property names or values
Example
item.set(0, "a", "b") // item.getFrame(0).set("a", "b")
  console.log(item.get(0, "a")); // "b"
Returns:
An instance itself
Type
SceneItem

setCSS(time, propertiesopt) → {SceneItem}

Source:
add css styles of items's element to the frame at that time.
Name Type Default Description
time number Time to synchronize and set css
properties? string[] [] elements to synchronize item's keyframes.
Example
item.setElement(document.querySelector("#id.class"));
  item.setCSS(0, ["opacity"]);
  item.setCSS(0, ["opacity", "width", "height"]);
Returns:
An instance itself
Type
SceneItem

setDelay(delay) → {Animator}

Source:
Overrides:
Set a delay for the start of an animation.
Name Type Description
delay number delay
Returns:
An instance itself.
Type
Animator

setDirection(direction) → {Animator}

Source:
Overrides:
Set whether an animation should be played forwards, backwards or in alternate cycles.
Name Type Description
direction DirectionType direction
Returns:
An instance itself.
Type
Animator

setDuration(duration) → {Animator}

Source:
Overrides:
Set how long an animation should take to complete one cycle.
Name Type Description
duration number duration
Returns:
An instance itself.
Type
Animator

setEasing(curverArray) → {Animator}

Source:
Overrides:
set animator's easing.
Name Type Description
curverArray string | number[] | EasingFunction The speed curve of an animation.
Example
animator.({
      delay: 2,
      diretion: "alternate",
      duration: 2,
      fillMode: "forwards",
      iterationCount: 3,
      easing: Scene.easing.EASE,
  });
Returns:
An instance itself.
Type
Animator

setElement(target) → {SceneItem}

Source:
Specifies an element to synchronize item's keyframes.
Name Type Description
target SceneItemSelectorType elements to synchronize item's keyframes.
Make sure that you have peusdo.
Example
item.setElement(document.querySelector("#id.class"));
item.setElement(document.querySelectorAll(".class"));
Returns:
An instance itself
Type
SceneItem

setElements(target) → {SceneItem}

Source:
Specifies an element to synchronize item's keyframes.
Name Type Description
target SceneItemSelectorType elements to synchronize item's keyframes.
Make sure that you have peusdo.
Example
item.setElement(document.querySelector("#id.class"));
item.setElement(document.querySelectorAll(".class"));
Returns:
An instance itself
Type
SceneItem

setFillMode(fillMode) → {Animator}

Source:
Overrides:
Set fill mode for the item when the animation is not playing (before it starts, after it ends, or both)
Name Type Description
fillMode FillModeType fillMode
Returns:
An instance itself.
Type
Animator

setFrame(time, frame) → {SceneItem}

Source:
Add a frame to the sceneItem at that time
Name Type Description
time Number frame's time
frame Frame
Example
item.setFrame(time, frame);
Returns:
An instance itself
Type
SceneItem

setId() → {Animator}

Source:
Overrides:
Specifies the unique indicator of the animator
Type Description
number | string String or number of id to be set in the animator
Returns:
An instance itself.
Type
Animator

setIterationCount(iterationCount) → {Animator}

Source:
Overrides:
Set the number of times an animation should be played.
Name Type Description
iterationCount IterationCountType iterationCount
Returns:
An instance itself.
Type
Animator

setOptions(optionsopt) → {Animator}

Source:
Overrides:
See:
set animator's options.
Name Type Default Description
options? Partial<AnimatorOptions> {} animator's options
Example
animator.({
      delay: 2,
      diretion: "alternate",
      duration: 2,
      fillMode: "forwards",
      iterationCount: 3,
      easing: Scene.eaasing.EASE,
  });
Returns:
An instance itself.
Type
Animator

setOrderObject(obj)

Source:
set properties orders object
Name Type Description
obj IObject<NameType[]> properties orders object
Example
item.setOrderObject({
          "": ["transform"],
          "transform": ["scale", "tralsate"],
      });

setOrders(names, orders) → {NameType[]}

Source:
set properties orders
Name Type Description
names NameType[] property names
orders NameType[] orders
Example
item.getOrders(["transform"]) // => ["translate", "scale"]
      item.setOrders(["transform"], ["scale", "tralsate"])
Returns:
Type
NameType[]

setPlaySpeed(playSpeed) → {Animator}

Source:
Overrides:
Set the animator's play speed
Name Type Description
playSpeed number playSpeed
Returns:
An instance itself.
Type
Animator

setPlayState(playState) → {Animator}

Source:
Overrides:
Set whether the animation is running or paused.
Name Type Description
playState PlayStateType playState
Returns:
An instance itself.
Type
Animator

setSelector(selectors) → {SceneItem}

Source:
Specifies an element to synchronize items' keyframes.
Name Type Description
selectors string Selectors to find elements in items.
Example
item.setSelector("#id.class");
Returns:
An instance itself
Type
SceneItem

setTime(time, isTickopt, isParentopt, execopt) → {Animator}

Source:
Overrides:
set currentTime
Name Type Description
time Number | String currentTime
isTick? boolean
isParent? boolean
exec? () => void
Example
animator.setTime("from"); // 0
  animator.setTime("to"); // 100%
  animator.setTime("50%");
  animator.setTime(10);
  animator.getTime() // 10
Returns:
An instance itself.
Type
Animator

size() → {Number}

Source:
get size of list
Returns:
length of list
Type
Number

toObject(isStartZeroopt) → {IObject<Frame>}

Source:
Get the frames in the item in object form.
Name Type Default Description
isStartZero? true
Example
item.toObject();
 // {0: {display: "none"}, 1: {display: "block"}}
Returns:
Type
IObject<Frame>

trigger<Name extends keyof Events>(eventName, paramopt) → {boolean}

Source:
Overrides:
Fires an event to call listeners.
Name Type Default Description
eventName Name | ... Event name
param? TargetParam<any> | ... {} Event parameter

trigger<Name extends keyof Events, Param = Events[Name]>(eventName) → {boolean}

Name Type Description
eventName extends TargetParam<Param> ? Name : never

trigger<Name extends keyof Events, Param = Events[Name]>(eventName, param) → {boolean}

Name Type Description
eventName Name
param TargetParam<Param>
Example
import EventEmitter from "@scena/event-emitter";


const emitter = new EventEmitter();

emitter.on("a", e => {
});


emitter.emit("a", {
  a: 1,
});
     
Returns:
If false, stop the event.
Type
boolean

unshift(time)

Source:
Push out the amount of time.
Name Type Description
time number time to push
Example
item.get(0); // frame 0
   item.unshift(3);
   item.get(3) // frame 0

update() → {SceneItem}

Source:
update property names used in frames.
Example
item.update();
Returns:
An instance itself
Type
SceneItem

Events

animate

Source:
This event is fired when timeupdate and animate.
Name Type Description
param.currentTime Number The total time that the animator is running.
param.time Number The iteration time during duration that the animator is running.
param.frame Frame frame of that time.

ended

Source:
Overrides:
This event is fired when animator is ended.

iteration

Source:
Overrides:
The event is fired when an iteration of an animation ends.
Name Type Description
param Object The object of data to be sent to an event.
Properties
Name Type Description
currentTime Number The total time that the animator is running.
iterationCount Number The iteration count that the animator is running.

paused

Source:
Overrides:
This event is fired when animator is paused.

play

Source:
Overrides:
This event is fired when play animator.

timeupdate

Source:
Overrides:
This event is fired when the animator updates the time.
Name Type Description
param Object The object of data to be sent to an event.
Properties
Name Type Description
currentTime Number The total time that the animator is running.
time Number The iteration time during duration that the animator is running.
iterationCount Number The iteration count that the animator is running.