※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。
Stage クラス¶
このページではStage
クラスについて説明します。
Stage クラスの概要¶
Stage
クラスはapyscにおける描画エリア全体を扱うインスタンスを作成し、各要素を格納します。
apyscのプロジェクトの最初でStage
のインスタンスを作成する必要があります(この時点で内部でデータやファイルの古いものの削除などが実行されます)。
ステージの作成¶
ステージの作成は以下のコード例のようにシンプルです:
import apysc as ap
stage: ap.Stage = ap.Stage()
ステージの背景色設定¶
Stage
クラスはbackground_color
のオプションの引数を持っており、この引数でステージの背景色を変更することができます。
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_elem_id="stage",
)
ap.save_overall_html(dest_dir_path="stage_background_color/")
このコードは以下のように黒背景のステージのHTMLを生成します:
ステージのサイズ設定¶
Stage
クラスはステージの幅を設定するstage_width
引数とステージの高さを設定するstage_height
引数を持っています。これらの設定はステージのサイズを変更します。
import apysc as ap
stage: ap.Stage = ap.Stage(
stage_width=500,
stage_height=50,
background_color=ap.Color("#333"),
stage_elem_id="stage",
)
ap.save_overall_html(dest_dir_path="stage_size/")
上記のコードは以下のように横長のステージを作成します:
ステージの要素のID設定¶
ステージの要素のID(HTMLのID)はstage_elem_id
引数で設定することができます。もしもこの設定を指定しない場合、apyscはステージ生成時のタイムスタンプや乱数などをベースとした一意なIDを生成します(例 : stage_12345...
)。
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_elem_id="line_chart_1",
)
このオプションはapyscの各プロジェクトで複数回出力などを行う際のIDの識別やバージョン管理などの面で便利です。
get_stage 関数のインターフェイス¶
get_stage
関数は現在生成済みのステージのインスタンスを返却します。
このインターフェイスは他の関数のスコープ内などでステージのインスタンスを参照したい場合などに便利なことがあります。
import apysc as ap
def _main() -> None:
"""
Entry point of this project.
"""
_: ap.Stage = ap.Stage(
stage_width=150,
stage_height=150,
background_color=ap.Color("#333"),
stage_elem_id="my_stage",
)
...
_other_function()
def _other_function() -> None:
"""
The other function to do something.
"""
stage: ap.Stage = ap.get_stage()
assert stage.stage_elem_id == "my_stage"
_main()
Stage クラスのコンストラクタのAPI¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] __init__(self, *, stage_width: int = 300, stage_height: int = 185, background_color: apysc._color.color.Color = Color("#ffffff"), add_to: str = 'body', stage_elem_id: Union[str, NoneType] = None, variable_name_suffix: str = '') -> None
[インターフェイス概要]
ステージ(描画領域全体)のインスタンスを生成します。
[引数]
stage_width
: int, default 300ステージの幅。
stage_height
: int, default 185ステージの高さ。
background_color
: str, default Colors.WHITE_FFFFFF16進数の背景色の文字列。
add_to
: str, default ‘body’ステージの要素を追加先となる要素の指定。一意のタグ(例 : ‘body’)やIDのセレクタ(例 : ‘#any-unique-elem’)を受け付けることができます。
stage_elem_id
: str or None, optionalステージのHTML要素に設定されるIDの属性(例 : ‘line-graph’)。もしNoneが設定されている場合、乱数などを使った数値を使った値が設定されます。
variable_name_suffix
: str, default “”JavaScript上の変数のサフィックスの設定です。この設定はJavaScriptのデバッグ時に役立つことがあります。
[コードサンプル]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage(
... stage_width=500,
... stage_height=300,
... background_color=ap.Color("#333"),
... stage_elem_id="sales_chart",
... )
stage_elem_id 属性のAPI¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイス概要]
ステージのHTML要素のIDを取得します。
[返却値]
stage_elem_id
: strステージのHTML要素のID(ID用の#の記号などは含まれません。例 : ‘line-graph’)。
[コードサンプル]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage(
... stage_width=500,
... stage_height=300,
... background_color=ap.Color("#333"),
... stage_elem_id="sales_chart",
... )
>>> stage.stage_elem_id
'sales_chart'
add_child API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] add_child(self, child: apysc._display.display_object.DisplayObject) -> None
[インターフェイス概要]
表示オブジェクトの子をこのインスタンスへと追加します。
[引数]
child
: DisplayObject追加する子のインスタンス。
[コードサンプル]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage()
>>> sprite_1: ap.Sprite = ap.Sprite()
>>> sprite_1.graphics.begin_fill(color=ap.Color("#0af"))
>>> rectangle: ap.Rectangle = sprite_1.graphics.draw_rect(
... x=50, y=50, width=50, height=50
... )
>>> sprite_2: ap.Sprite = ap.Sprite()
>>> sprite_2.add_child(rectangle)
[関連資料]
remove_child API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] remove_child(self, child: apysc._display.display_object.DisplayObject) -> None
[インターフェイス概要]
このインスタンスから指定された表示オブジェクトの子を取り除きます。
[引数]
child
: DisplayObject取り除く対象の子のインスタンス。
[コードサンプル]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage()
>>> sprite: ap.Sprite = ap.Sprite()
>>> sprite.graphics.begin_fill(color=ap.Color("#0af"), alpha=0.5)
>>> rectangle: ap.Rectangle = sprite.graphics.draw_rect(
... x=50, y=50, width=50, height=50
... )
>>> sprite.graphics.remove_child(rectangle)
>>> print(rectangle.parent)
None
[関連資料]
contains API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] contains(self, child: apysc._display.display_object.DisplayObject) -> apysc._type.boolean.Boolean
[インターフェイス概要]
指定された子のインスタンスを持っているかどうかの真偽値を取得します。
[引数]
child
: DisplayObjectチェック対象の子のインスタンス。
[返却値]
result
: Booleanこのインスタンスが指定された子を持つ場合Trueが設定されます。
[コードサンプル]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage()
>>> sprite: ap.Sprite = ap.Sprite()
>>> sprite.graphics.begin_fill(color=ap.Color("#0af"), alpha=0.5)
>>> rectangle: ap.Rectangle = sprite.graphics.draw_rect(
... x=50, y=50, width=50, height=50
... )
>>> sprite.graphics.contains(rectangle)
Boolean(True)
>>> rectangle.remove_from_parent()
>>> sprite.graphics.contains(rectangle)
Boolean(False)
[関連資料]
num_children property API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイス概要]
現在の子の数を取得します。
[返却値]
num_children
: int現在の子の数。
[コードサンプル]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage()
>>> sprite: ap.Sprite = ap.Sprite()
>>> sprite.graphics.begin_fill(color=ap.Color("#0af"), alpha=0.5)
>>> rectangle_1: ap.Rectangle = sprite.graphics.draw_rect(
... x=50, y=50, width=50, height=50
... )
>>> rectangle_2: ap.Rectangle = sprite.graphics.draw_rect(
... x=150, y=50, width=50, height=50
... )
>>> sprite.graphics.num_children
Int(2)
[関連資料]
get_child_at API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] get_child_at(self, index: Union[int, apysc._type.int.Int]) -> apysc._display.display_object.DisplayObject
[インターフェイス概要]
指定されたインデックスの子を取得します。
[引数]
index
: int or Int対象の子のインデックス(0からスタートします)。
[返却値]
child
: DisplayObject対象の子のインスタンス。
[コードサンプル]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage()
>>> sprite: ap.Sprite = ap.Sprite()
>>> sprite.graphics.begin_fill(color=ap.Color("#0af"), alpha=0.5)
>>> rectangle_1: ap.Rectangle = sprite.graphics.draw_rect(
... x=50, y=50, width=50, height=50
... )
>>> rectangle_2: ap.Rectangle = sprite.graphics.draw_rect(
... x=150, y=50, width=50, height=50
... )
>>> child_at_index_1: ap.DisplayObject = sprite.graphics.get_child_at(1)
>>> child_at_index_1 == rectangle_2
True
[関連資料]
get_stage のAPI¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] get_stage() -> apysc._display.stage.Stage
[インターフェイス概要]
既に生成済みのステージのインスタンスを取得します。
[返却値]
stage
: Stage対象のステージのインスタンス。
[エラー発生条件]
StageNotCreatedError: もしもまだ生成済みのステージのインスタンスが存在しない場合。