※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。
click インターフェイス¶
このページではclick
インターフェイスについて説明します。
インターフェイス概要¶
click
インターフェイスはSprite
やRectangle
クラスなどの任意のDisplayObject
のサブクラスのインスタンスにクリックイベントを設定します。これらのインターフェイスで登録されたハンドラは対象のインスタンスをクリックした際に呼ばれます。
逆にunbind_click
インターフェイスは対象のDisplayObject
のインスタンスからクリックイベントの登録を解除します。
関連資料¶
以下のページでは基本的なマウスイベントのインターフェイスについて説明しています。
click インターフェイスの基本的な使い方¶
DisplayObject
のサブクラスの各インスタンスはclick
メソッドを持っており、そのインターフェイスを使ってイベントのハンドラを登録することができます。
以下のコード例では四角に対してクリックのイベントハンドラを設定しています。
import apysc as ap
ap.Stage(
background_color=ap.Color("#333"),
stage_width=150,
stage_height=150,
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
def on_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
"""
The handler that the rectangle calls when clicked.
Parameters
----------
e : MouseEvent
Event instance.
options : dict
Optional arguments.
"""
rectangle: ap.Rectangle = e.this
rectangle.fill_color = ap.Color("#f0a")
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
rectangle.click(handler=on_click)
ap.save_overall_html(dest_dir_path="click_basic_usage_of_the_click_interface/")
もしも以下の四角をクリックすると四角の色はマゼンタに切り替わります。
unbind_click インターフェイスの基本的な使い方¶
unbind_click
インターフェイスはDisplayObject
のサブクラスのインスタンスから登録済みのクリックイベントの設定を取り除きます。
以下のコード例ではunbind_click
メソッドでクリックイベントを取り除いているため四角をクリックしても何も発生しません。
import apysc as ap
ap.Stage(
background_color=ap.Color("#333"),
stage_width=150,
stage_height=150,
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
def on_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
"""
The handler that the rectangle calls when clicked.
Parameters
----------
e : MouseEvent
Event instance.
options : dict
Optional arguments.
"""
rectangle: ap.Rectangle = e.this
rectangle.fill_color = ap.Color("#f0a")
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
rectangle.click(handler=on_click)
rectangle.unbind_click(handler=on_click)
ap.save_overall_html(dest_dir_path="click_basic_usage_of_the_unbind_click_interface/")
全てのクリックのイベントハンドラを解除する¶
unbind_click_all
インターフェイスはDisplayObject
のサブクラスのインスタンスから全ての登録されているクリックイベントのハンドラを解除します。
以下のコード例ではunbind_click_all
メソッドで全てのクリックイベントの設定を取り除いており、四角をクリックしても何も起きません。
import apysc as ap
ap.Stage(
background_color=ap.Color("#333"),
stage_width=150,
stage_height=150,
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
def on_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
"""
The handler that the rectangle calls when clicked.
Parameters
----------
e : MouseEvent
Event instance.
options : dict
Optional arguments.
"""
rectangle: ap.Rectangle = e.this
rectangle.fill_color = ap.Color("#f0a")
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
rectangle.click(handler=on_click)
rectangle.unbind_click_all()
ap.save_overall_html(dest_dir_path="click_unbind_all_the_click_event_handlers/")
click API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] click(self, handler: Callable[[apysc._event.mouse_event.MouseEvent, ~_Options], NoneType], *, options: Union[~_Options, NoneType] = None) -> str
[インターフェイス概要]
クリックイベントのリスナー設定を追加します。
[引数]
handler
: _Handlerこのインスタンスをクリックした際に呼ばれるハンドラ。
options
: dict or None, default Noneハンドラに渡される省略が可能な追加のパラメーターとしての辞書。
[返却値]
name
: strハンドラ名。
[コードサンプル]
>>> import apysc as ap
>>> def on_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
... rectangle: ap.Rectangle = e.this
... rectangle.x += 10
>>> 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.click(on_click)
[関連資料]
unbind_click API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] unbind_click(self, handler: Callable[[apysc._event.mouse_event.MouseEvent, ~_Options], NoneType]) -> None
[インターフェイス概要]
指定されたクリックイベントのハンドラー設定を取り除きます。
[引数]
handler
: _Handlerイベント設定を取り除く対象の関数やメソッドなど。
[コードサンプル]
>>> import apysc as ap
>>> def on_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
... rectangle: ap.Rectangle = e.this
... rectangle.fill_color = ap.Color("#f0a")
... rectangle.unbind_click(on_click)
>>> 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.click(on_click)
unbind_click_all API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] unbind_click_all(self) -> None
[インターフェイス概要]
全てのクリックイベント設定を取り除きます。
[コードサンプル]
>>> import apysc as ap
>>> def on_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
... rectangle: ap.Rectangle = e.this
... rectangle.fill_color = ap.Color("#f0a")
... rectangle.unbind_click_all()
>>> 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.click(on_click)