※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。
animation_parallel インターフェイス¶
このページではanimation_parallel
のインターフェイスについて説明します。
インターフェイス概要¶
animation_parallel
メソッドのインターフェイスはAnimationParallel
クラスのインスタンスを生成します。このインスタンスを使うことで複数のアニメーションの同時実行の設定を行うことができます。
このインターフェイスはSprite
やRectangle
などの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の設定についての特記事項¶
各アニメーションごとのduration
やdelay
、easing
の引数設定は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()
[関連資料]