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

unbind_enter_frame と unbind_enter_frame_all の各インターフェイス

このページではunbind_enter_frameunbind_enter_frame_allメソッドの各インターフェイスについて説明します。

各インターフェイスの概要

unbind_enter_frameunbind_enter_frame_allメソッドの各インターフェイスはenter frameイベントのハンドラ設定を取り除きます。

unbind_enter_frameインターフェイスは指定された一つのハンドラを無効化し、unbind_enter_frame_allインターフェイスはすべてのハンドラ設定を無効化します。

基本的な使い方

unbind_enter_frameインターフェイスはhandler引数の指定を必要とします。

加えて、このインターフェイスはもし指定されたハンドラがまだ未設定だった場合にはエラーとなります。

以下の例では、四角をクリックした際にenter frameのイベントを無効化しています。

import apysc as ap

stage: ap.Stage = ap.Stage(
    stage_width=150,
    stage_height=150,
    background_color=ap.Color("#333"),
    stage_elem_id="stage",
)
rectangle: ap.Rectangle = ap.Rectangle(
    x=50,
    y=50,
    width=50,
    height=50,
    fill_color=ap.Color("#0af"),
)


def on_enter_frame(e: ap.EnterFrameEvent, options: dict) -> None:
    """
    The handler to handle an enter frame event.

    Parameters
    ----------
    e : ap.EnterFrameEvent
        Event instance.
    options : dict
        Optional argument dictionary.
    """
    rectangle.rotation_around_center += 1


def on_rectangle_click(
    e: ap.MouseEvent[ap.Rectangle],
    options: dict,
) -> None:
    """
    The handler to handle a rectangle click event.

    Parameters
    ----------
    e : ap.MouseEvent
        Event instance.
    options : dict
        Optional argument dictionary.
    """
    stage.unbind_enter_frame(handler=on_enter_frame)


stage.enter_frame(handler=on_enter_frame, fps=ap.FPS.FPS_30)
rectangle.click(handler=on_rectangle_click)
ap.save_overall_html(dest_dir_path="unbind_enter_frame_basic_usage/")

unbind_enter_frame_allインターフェイスは引数の指定を必要としません。

以下の例では四角をクリックした際にすべてのenter frameのイベントを無効化しています。

import apysc as ap

stage: ap.Stage = ap.Stage(
    stage_width=250,
    stage_height=150,
    background_color=ap.Color("#333"),
    stage_elem_id="stage",
)
left_rectangle: ap.Rectangle = ap.Rectangle(
    x=50,
    y=50,
    width=50,
    height=50,
    fill_color=ap.Color("#0af"),
)
right_rectangle: ap.Rectangle = ap.Rectangle(
    x=150,
    y=50,
    width=50,
    height=50,
    fill_color=ap.Color("#f0a"),
)


def on_enter_frame_1(e: ap.EnterFrameEvent, options: dict) -> None:
    """
    The handler to handle an enter frame event.

    Parameters
    ----------
    e : ap.EnterFrameEvent
        Event instance.
    options : dict
        Optional argument dictionary.
    """
    left_rectangle.rotation_around_center += 1


def on_enter_frame_2(e: ap.EnterFrameEvent, options: dict) -> None:
    """
    The handler to handle an enter frame event.

    Parameters
    ----------
    e : ap.EnterFrameEvent
        Event instance.
    options : dict
        Optional argument dictionary.
    """
    right_rectangle.rotation_around_center -= 1


def on_rectangle_click(e: ap.MouseEvent, options: dict) -> None:
    """
    The handler to handle a rectangle click event.

    Parameters
    ----------
    e : ap.MouseEvent
        Event instance.
    options : dict
        Optional argument dictionary.
    """
    stage.unbind_enter_frame_all()


stage.enter_frame(handler=on_enter_frame_1, fps=ap.FPS.FPS_30)
stage.enter_frame(handler=on_enter_frame_2, fps=ap.FPS.FPS_30)
left_rectangle.click(handler=on_rectangle_click)
right_rectangle.click(handler=on_rectangle_click)

ap.save_overall_html(dest_dir_path="unbind_enter_frame_all_basic_usage/")

関連資料

unbind_enter_frame のAPI

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

[インターフェイスの構造] unbind_enter_frame(self, handler: Callable[[apysc._event.enter_frame_event.EnterFrameEvent, ~_Options], NoneType]) -> None


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

指定されたハンドラのenter-frameイベントの設定を解除します。


[引数]

  • handler: Callable[[EnterFrameEvent, _Options], None]

    • 設定を取り除く対象のcallableオブジェクト。


[エラー発生条件]

  • _EnterFrameEventNotRegistered: もし指定されたハンドラの設定削除対象が存在しない場合。


[コードサンプル]

>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage()
>>> rectangle: ap.Rectangle = ap.Rectangle(
...     x=50, y=50, width=50, height=50, fill_color=ap.Color("#0af")
... )
>>> def on_enter_frame(e: ap.EnterFrameEvent, options: dict) -> None:
...     rectangle.x += 1
>>> stage.enter_frame(handler=on_enter_frame, fps=ap.FPS.FPS_30)
>>> # Any implementations here...
>>> stage.unbind_enter_frame(handler=on_enter_frame)

unbind_enter_frame_all のAPI

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

[インターフェイスの構造] unbind_enter_frame_all(self) -> None


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

すべてのenter-frameイベントの設定を解除します。


[コードサンプル]

>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage()
>>> rectangle: ap.Rectangle = ap.Rectangle(
...     x=50, y=50, width=50, height=50, fill_color=ap.Color("#0af")
... )
>>> def on_enter_frame(e: ap.EnterFrameEvent, options: dict) -> None:
...     rectangle.x += 1
>>> stage.enter_frame(handler=on_enter_frame, fps=ap.FPS.FPS_30)
>>> # Any implementations here...
>>> stage.unbind_enter_frame_all()