Each animation interface return value¶
This page explains each animation interface, such as the animation_move
, return value (AnimationBase
instance).
Each interface returns the subclass instance of the AnimationBase¶
Each animation interface returns the subclass instance of the AnimationBase
. So, for example, the animation_move
interface returns the AnimationMove
instance, and the animation_x
interface returns the AnimationX
instance.
The AnimationBase
class has the standard animation interfaces, such as the start
(method to start animation), animation_complete
(method to bind the animation completion event), target
(property of the animation target).
Basic usage¶
Each return value class is in the apysc package (e.g., ap.AnimationMove
). Therefore, you can set the type annotation with it.
The following code example uses the animation_x
method interface. And You get an AnimationX
instance to start and bind the animation completion event with it.
import apysc as ap
DURATION: int = 1000
def on_animation_complete_1(e: ap.AnimationEvent[ap.Rectangle], options: dict) -> None:
"""
The handler that the animation calls when its end.
Parameters
----------
e : ap.AnimationEvent
Event instance.
options : dict
Optional arguments dictionary.
"""
rectangle: ap.Rectangle = e.this.target
animation_x: ap.AnimationX = rectangle.animation_x(x=50, duration=DURATION)
animation_x.animation_complete(on_animation_complete_2)
animation_x.start()
def on_animation_complete_2(e: ap.AnimationEvent[ap.Rectangle], options: dict) -> None:
"""
The handler that the animation calls when its end.
Parameters
----------
e : ap.AnimationEvent
Event instance.
options : dict
Optional arguments dictionary.
"""
rectangle: ap.Rectangle = e.this.target
animation_x: ap.AnimationX = rectangle.animation_x(x=100, duration=DURATION)
animation_x.animation_complete(on_animation_complete_1)
animation_x.start()
ap.Stage(
stage_width=200,
stage_height=150,
background_color=ap.Color("#333"),
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
animation_x: ap.AnimationX = rectangle.animation_x(x=100, duration=DURATION)
animation_x.animation_complete(on_animation_complete_1)
animation_x.start()
ap.save_overall_html(dest_dir_path="./animation_return_value_basic_usage/")