※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。

animation_parallel インターフェイス

このページではanimation_parallelのインターフェイスについて説明します。

インターフェイス概要

animation_parallelメソッドのインターフェイスはAnimationParallelクラスのインスタンスを生成します。このインスタンスを使うことで複数のアニメーションの同時実行の設定を行うことができます。

このインターフェイスはSpriteRectangleなどのDisplayObjectの各サブクラスに存在します。

基本的な使い方

animation_parallelメソッドを使ってこのインターフェイスを使用することができます。animations引数の値は各アニメーションの設定値の指定を必要としません。

以下のコード例ではX座標、塗りの透明度、塗りの色、そして線の幅に対するアニメーションを同時に実行しています。

import apysc as ap

ap.Stage(
    stage_width=400,
    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"))
sprite.graphics.line_style(color=ap.Color("#fff"), thickness=3)

rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
rectangle.animation_parallel(
    animations=[
        rectangle.animation_x(x=300),
        rectangle.animation_fill_color(fill_color=ap.Color("#f0a")),
        rectangle.animation_fill_alpha(alpha=0.3),
        rectangle.animation_line_thickness(thickness=7),
    ],
    duration=3000,
    delay=3000,
    easing=ap.Easing.EASE_OUT_QUINT,
).start()

ap.save_overall_html(dest_dir_path="animation_parallel_basic_usage/")

各アニメーションのduration、delay、easingの設定についての特記事項

各アニメーションごとのdurationdelayeasingの引数設定はanimation_parallelメソッド側の値が使用されるため設定できません。もし何らかの値を設定した場合にはエラーとなります。

...
rectangle.animation_parallel(
    animations=[
        rectangle.animation_x(x=300, duration=1000),
    ],
    duration=3000,
    delay=2000,
    easing=ap.Easing.EASE_OUT_QUINT,
)
...
ValueError: There is an animation target that is changed duration setting: 1000
The duration setting of animation in the `animations` argument can not be changed.
Target animation type: <class 'apysc._animation.animation_x.AnimationX'>

animation_parallel API

特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。

[インターフェイスの構造] animation_parallel(self, *, animations: List[apysc._animation.animation_base.AnimationBase], duration: Union[int, apysc._type.int.Int] = 3000, delay: Union[int, apysc._type.int.Int] = 0, easing: apysc._animation.easing.Easing = <Easing.LINEAR: 'function(x) {return x;}'>) -> apysc._animation.animation_parallel.AnimationParallel


[インターフェイス概要]

並列実行されるアニメーション設定を行います。


[引数]

  • animations: list of AnimationBase

    • 対象の各アニメーションの設定。

  • duration: Int or int, default 3000

    • アニメーション完了までのミリ秒。

  • delay: Int or int, default 0

    • アニメーション開始までの遅延時間のミリ秒。

  • easing: Easing, default Easing.LINEAR

    • イージング設定。


[返却値]

  • animation_parallel: AnimationParallel

    • 生成されたアニメーションのインスタンス。


[エラー発生条件]

  • ValueError:
    ・もし各アニメーションの対象のインスタンスがこのインスタンスでは無い場合。
    ・もしanimations引数の各アニメーションのderationやdelay、easingの設定が変更去れている場合。


[特記事項]

・アニメーションを開始するには返却されたインスタンスのstartメソッドを呼び出す必要があります。
animations引数の値にはAnimationParallelクラスのインスタンスを含めることはできません。
・このインターフェイスはanimations引数内の値のduration, delay, easingの各引数の設定を無視します(代わりにこのインターフェイス自身のそれらの引数の設定を利用してください)。


[コードサンプル]

>>> import apysc as ap
>>> stage: ap.Stage = ap.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
... )
>>> _ = rectangle.animation_parallel(
...     animations=[
...         rectangle.animation_x(x=100),
...         rectangle.animation_fill_color(fill_color=ap.Color("#f0a")),
...         rectangle.animation_fill_alpha(alpha=0.5),
...     ],
...     duration=1500,
...     easing=ap.Easing.EASE_OUT_QUINT,
... ).start()

[関連資料]