※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合は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_FFFFFF

    • 16進数の背景色の文字列。

  • 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: もしもまだ生成済みのステージのインスタンスが存在しない場合。