Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Scrollable

The entity class that provide scrolling/clipping. Any children of this.content are clipped and able to be scrolled by the scrollbars.

スクロール・クリッピング機能を提供するエンティティ。 this.content の子孫エンティティはクリッピングされ、スクロールバーでスクロールできる。

Hierarchy

  • E
    • Scrollable

Implements

  • CommonArea
  • CommonArea
  • Destroyable

Index

Constructors

Properties

Accessors

Methods

Constructors

constructor

Properties

Private _apiRequestedOffsetX

_apiRequestedOffsetX: number

Private _apiRequestedOffsetY

_apiRequestedOffsetY: number

Private _barImage

_barImage: Surface

Private _beforeHeight

_beforeHeight: number

Private _beforeWidth

_beforeWidth: number

Private _bgImage

_bgImage: Surface

Private _contentBoundingHeight

_contentBoundingHeight: number

Private _contentBoundingWidth

_contentBoundingWidth: number

Private _contentContainer

_contentContainer: ScrolledContentContainer

Private _deltaX

_deltaX: number

Private _deltaY

_deltaY: number

Private _extraDrawOffsetX

_extraDrawOffsetX: number

Private _extraDrawOffsetY

_extraDrawOffsetY: number

Private _extraDrawSize

_extraDrawSize: number

Private _frameTasks

_frameTasks: FrameTaskData[]

Private _hasTouchableChildren

_hasTouchableChildren: boolean

子にtouchableなものが含まれているかどうかを表す。

Private _horizontalBar

_horizontalBar: Scrollbar

Private _insetBars

_insetBars: boolean

Private _isCached

_isCached: boolean

Private _isFlushRequested

_isFlushRequested: boolean

Private _isHorizontal

_isHorizontal: boolean

Private _isUpdateBoundingRectRequested

_isUpdateBoundingRectRequested: boolean

Private _isUpdateContentScrollRequested

_isUpdateContentScrollRequested: boolean

Private _isUpdateScrollbarRequested

_isUpdateScrollbarRequested: boolean

Private _isVertical

_isVertical: boolean

Private _lastNotifiedHorizontalRate

_lastNotifiedHorizontalRate: number

Private _lastNotifiedVerticalRate

_lastNotifiedVerticalRate: number

Private _matrix

_matrix: Matrix

変換行列のキャッシュ。 Object2D は状態に変更があった時、本値の_modifiedをtrueにする必要がある。 初期値は undefined であり、 getMatrix() によって必要な時に生成されるため、 if (this._matrix) this._matrix._modified = true という式で記述する必要がある。

エンジンに組み込まれているSprite等のエンティティ群は、 すでに本処理を組み込んでいるため通常ゲーム開発者はこの値を意識する必要はない。 Object2D を継承したクラスを新たに作る場合には、本フィールドを適切に操作しなければならない。

Private _momentumBuffer

_momentumBuffer: MomentumBuffer

Private _momentumScroll

_momentumScroll: boolean

Private _renderOffsetX

_renderOffsetX: number

Private _renderOffsetY

_renderOffsetY: number

Private _renderedCamera

_renderedCamera: Camera

Private _renderer

_renderer: Renderer

Private _surface

_surface: Surface

Private _targetCameras

_targetCameras: Camera[]

このEが「映り込む」カメラの集合。 空でない配列が指定されている場合、配列内に存在しないCameraでの描画時にはこのEがスキップされる。 初期値はundefinedである。targetCamerasがこの値を暗黙に生成するので、ゲーム開発者はそちらを使うべきである。

Private _touchScroll

_touchScroll: boolean

Private _verticalBar

_verticalBar: Scrollbar

angle

angle: number

オブジェクトの回転。度数で指定する。 初期値は 0 である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

children

children: E[]

このエンティティの全子エンティティ。 子エンティティが存在しない場合、本フィールドの値は undefined または空配列である。

compositeOperation

compositeOperation: CompositeOperation.SourceOver | CompositeOperation.SourceAtop | CompositeOperation.Lighter | CompositeOperation.Copy

描画時の合成方法を指定する。 初期値は undefined となり、合成方法を指定しないことを意味する。 E においてこの値を変更した場合、 modified() を呼び出す必要がある。

height

height: number

このオブジェクトの縦幅。 初期値は 0 である。実際の表示領域としてはscaleX, scaleY, angleの値も考慮する必要がある。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

id

id: number

このエンティティに割り振られる Game 単位で一意のID。(ただし local が真である場合を除く)

local

local: boolean

このエンティティがローカルであるか否か。 コンストラクタで真が指定された時、または属するシーンがローカルシーンまたはローカルティック補間シーンである時、この値は真である。

この値が真である場合、このエンティティに対する point イベントはこのゲームインスタンスにのみ通知され、 他の参加者・視聴者には通知されない。また真である場合、 id の値の一意性は保証されない。

この値は参照のためにのみ公開されている。ゲーム開発者はこの値を直接変更してはならない。

message

message: Trigger<MessageEvent>

このエンティティのmessageイベント。

opacity

opacity: number

0~1でオブジェクトの不透明度を表す。 初期値は 1 である。本値が0の場合、Rendererは描画処理を省略する。 E においてこの値を変更した場合、 modified() を呼び出す必要がある。

parent

parent: E | Scene

親。

pointDown

pointDown: Trigger<PointDownEvent>

このエンティティのpoint downイベント。

pointMove

pointMove: Trigger<PointMoveEvent>

このエンティティのpoint moveイベント。

pointUp

pointUp: Trigger<PointUpEvent>

このエンティティのpoint upイベント。

scaleX

scaleX: number

オブジェクトの横方向の倍率。 初期値は 1 である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

scaleY

scaleY: number

オブジェクトの縦方向の倍率。 初期値は 1 である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

scene

scene: Scene

このエンティティが属するシーン。

state

state: EntityStateFlags.None | EntityStateFlags.Hidden | EntityStateFlags.Cached | EntityStateFlags.Modified | EntityStateFlags.ContextLess

様々な状態を表すビットフラグ。

tag

tag: any

ゲーム開発者向けのタグ情報管理コンテナ。 この値はゲームエンジンのロジックからは使用されず、ゲーム開発者は任意の目的に使用してよい。

targetCameras

targetCameras: Camera[]

このエンティティを表示できるカメラの配列。

初期値は空配列である。 この値が undefined または空配列である場合、このエンティティとその子孫はカメラによらず描画される。 空でない配列である場合、このエンティティとその子孫は、配列内に含まれるカメラでの描画の際にのみ表示される。

この値を変更した場合、 this.modified() を呼び出す必要がある。

touchable

touchable: boolean

プレイヤーにとって触れられるオブジェクトであるかを表す。

この値が偽である場合、ポインティングイベントの対象にならない。 初期値は false である。

E の他のプロパティと異なり、この値の変更後に this.modified() を呼び出す必要はない。

update

update: Trigger<void>

時間経過イベント。本イベントの一度のfireにつき、常に1フレーム分の時間経過が起こる。

width

width: number

このオブジェクトの横幅。 初期値は 0 である。実際の表示領域としてはscaleX, scaleY, angleの値も考慮する必要がある。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

x

x: number

このオブジェクトの横位置。 初期値は 0 である。実際の座標位置はscaleX, scaleY, angleの値も考慮する必要がある。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

y

y: number

このオブジェクトの縦位置。 初期値は 0 である。実際の座標位置はscaleX, scaleY, angleの値も考慮する必要がある。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

Static Easing

Easing: EasingFunction = EasingFunction

Easing functions for scroll functions (e.g. scrollToX())

スクロール関数(scrollToX() など)のためのイージング関数群。

Accessors

content

  • get content(): E
  • The content root entity. Any children of this entity are clipped by the rectangle of this (defined by this.width and this.height).

    コンテンツルートとなるエンティティ。 コンテンツルートの子孫の表示はクリッピングされ、スクロールできるようになる。 そのクリッピング範囲は this.widththis.height で定義される。

    Returns E

horizontalBar

scrollOffsetX

  • get scrollOffsetX(): number
  • set scrollOffsetX(x: number): void
  • The horizontal scroll offset in pixels. A positive number or zero.

    横方向のスクロールオフセット(ピクセル)。 0または正の数。

    Returns number

  • Assign the horizontal scroll offset in pixels.

    横方向のスクロールオフセット(ピクセル)を設定する。

    Parameters

    • x: number

      The horizontal scroll offset in pixels. 横スクロールオフセット。

    Returns void

scrollOffsetY

  • get scrollOffsetY(): number
  • set scrollOffsetY(y: number): void
  • The vertical scroll offset in pixels. A positive number or zero.

    縦方向のスクロールオフセット(ピクセル)。 0または正の数。

    Returns number

  • Assign the vertical scroll offset in pixels.

    縦方向のスクロールオフセット(ピクセル)を設定する。

    Parameters

    • y: number

      The vertical scroll offset in pixels. 縦スクロールオフセット。

    Returns void

verticalBar

Methods

Private _addFrameTask

Private _addScrollDelta

  • _addScrollDelta(delta: CommonOffset): void

Private _calculateBoundingRect

  • _calculateBoundingRect(m?: Matrix, c?: Camera): CommonRect
  • Parameters

    • Optional m: Matrix
    • Optional c: Camera

    Returns CommonRect

Private _calculateBoundingRectSize

  • _calculateBoundingRectSize(): CommonSize

Private _cancelFrameTask

  • _cancelFrameTask(type: string): void

Private _disableTouchPropagation

  • _disableTouchPropagation(): void
  • Returns void

Private _enableTouchPropagation

  • _enableTouchPropagation(): void
  • Returns void

Private _flushModification

  • _flushModification(): void

Private _handleContentModified

  • _handleContentModified(): void

Private _handleOnChangeHorizontalPositionRate

  • _handleOnChangeHorizontalPositionRate(rate: number): void

Private _handleOnChangeVerticalPositionRate

  • _handleOnChangeVerticalPositionRate(rate: number): void

Private _handlePointDown

  • _handlePointDown(ev: PointDownEvent): void

Private _handlePointMove

  • _handlePointMove(ev: PointMoveEvent): void

Private _handlePointUp

  • _handlePointUp(ev: PointUpEvent): void

Private _isTargetOperation

  • _isTargetOperation(e: PointEvent): boolean
  • Parameters

    • e: PointEvent

    Returns boolean

Private _onUpdate

  • _onUpdate(): void

Private _renderCache

  • _renderCache(camera?: Camera): void

Private _requestFlushModification

  • _requestFlushModification(): void

Private _requestUpdateBoundingRect

  • _requestUpdateBoundingRect(): void

Private _requestUpdateContentScroll

  • _requestUpdateContentScroll(): void

Private _requestUpdateScrollbar

  • _requestUpdateScrollbar(): void

Private _updateBoundingRect

  • _updateBoundingRect(): boolean

Private _updateContentScroll

  • _updateContentScroll(): void

Private _updateMatrix

  • _updateMatrix(): void
  • 公開のプロパティから内部の変換行列キャッシュを更新する。

    Returns void

Private _updateScrollBar

  • _updateScrollBar(): void

append

  • append(e: E): void
  • 子を追加する。

    Parameters

    • e: E

      子エンティティとして追加するエンティティ

    Returns void

calculateBoundingRect

  • calculateBoundingRect(c?: Camera): CommonRect
  • このEの包含矩形を計算する。

    Parameters

    • Optional c: Camera

      使用カメラ。

    Returns CommonRect

destroy

  • destroy(): void
  • Destroy the entity.

    このエンティティを破棄する。

    Returns void

destroyed

  • destroyed(): boolean
  • このエンティティが破棄済みであるかを返す。

    Returns boolean

findPointSourceByPoint

  • findPointSourceByPoint(point: CommonOffset, m?: Matrix, force?: boolean, camera?: Camera): PointSource
  • 自身と自身の子孫の中で、その座標に反応する PointSource を返す。

    戻り値は、対象が見つかった場合、 target に見つかったエンティティを持つ PointSource である。 対象が見つからなかった場合、 undefined である。戻り値が undefined でない場合、その target プロパティは次を満たす:

    • このエンティティ(this) またはその子孫である
    • E#touchable が真である
    • カメラ camera から可視である中で最も手前にある

    Parameters

    • point: CommonOffset

      対象の座標

    • Optional m: Matrix

      this に適用する変換行列。省略された場合、単位行列

    • Optional force: boolean

      touchable指定を無視する場合真を指定する。省略された場合、偽

    • Optional camera: Camera

      対象のカメラ。指定されなかった場合undefined

    Returns PointSource

game

  • game(): Game
  • このエンティティが属する Game を返す。

    Returns Game

getMatrix

  • getMatrix(): Matrix
  • このオブジェクトの変換行列を得る。

    Returns Matrix

getScrollOffsetPercentX

  • getScrollOffsetPercentX(): number
  • Returns the horizontal scroll offset in percentage.

    横スクロールオフセットをパーセントで返す。

    Returns number

getScrollOffsetPercentY

  • getScrollOffsetPercentY(): number
  • Returns the vertical scroll offset in percentage.

    縦スクロールオフセットをパーセントで返す。

    Returns number

hide

  • hide(): void
  • このEを非表示状態にする。

    this.show() が呼ばれるまでの間、このエンティティは各 Renderer によって描画されない。 また Game#findPointSource() で返されることもなくなる。 this#pointDown, pointMove, pointUp なども通常の方法ではfireされなくなる。

    Returns void

insertBefore

  • insertBefore(e: E, target: E): void
  • 子を挿入する。

    targetthis の子でない場合、append(e) と同じ動作となる。

    Parameters

    • e: E

      子エンティティとして追加するエンティティ

    • target: E

      挿入位置にある子エンティティ

    Returns void

modified

  • modified(isBubbling?: boolean): void
  • Notify the modfication on this entity to the engine.

    このエンティティへの変更をエンジンに通知する。

    Parameters

    • Optional isBubbling: boolean

    Returns void

moveBy

  • moveBy(x: number, y: number): void
  • オブジェクトを相対的に移動する。 このメソッドは xy を同時に加算するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • x: number

      X座標に加算する値

    • y: number

      Y座標に加算する値

    Returns void

moveTo

  • moveTo(x: number, y: number): void
  • moveTo(obj: CommonOffset): void
  • オブジェクトを移動する。 このメソッドは xy を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • x: number

      X座標

    • y: number

      Y座標

    Returns void

  • オブジェクトを移動する。 このメソッドは xy を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • obj: CommonOffset

      X,Y座標

    Returns void

remove

  • remove(e?: E): void
  • 子を削除する。

    ethis の子でない場合、 AssertionError がthrowされる。 e === undefined であり親がない場合、 AssertionError がthrowされる。

    Parameters

    • Optional e: E

      削除する子エンティティ。省略された場合、自身を親から削除する

    Returns void

render

  • render(renderer: Renderer, camera?: Camera): void
  • 自分自身と子孫の内容を描画する。

    このメソッドは、 Renderer#draw() からエンティティのツリー構造をトラバースする過程で暗黙に呼び出される。 通常、ゲーム開発者がこのメソッドを呼び出す必要はない。

    Parameters

    • renderer: Renderer

      描画先に対するRenderer

    • Optional camera: Camera

      対象のカメラ。省略された場合、undefined

    Returns void

renderSelf

  • renderSelf(renderer: Renderer, camera?: Camera): boolean
  • Render the entity. Called by the engine implicitly. No need to call this directly.

    このエンティティを描画する。 このメソッドはエンジンによって暗黙に呼び出される。直接呼び出す必要はない。

    Parameters

    • renderer: Renderer
    • Optional camera: Camera

    Returns boolean

resizeBy

  • resizeBy(width: number, height: number): void
  • オブジェクトのサイズを相対的に変更する。 このメソッドは widthheight を同時に加算するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • width: number

      加算する幅

    • height: number

      加算する高さ

    Returns void

resizeTo

  • resizeTo(width: number, height: number): void
  • resizeTo(size: CommonSize): void
  • オブジェクトのサイズを設定する。 このメソッドは widthheight を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • width: number

    • height: number

      高さ

    Returns void

  • オブジェクトのサイズを設定する。 このメソッドは widthheight を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • size: CommonSize

      幅と高さ

    Returns void

scale

  • scale(scale: number): void
  • オブジェクトの拡大率を設定する。 このメソッドは scaleXscaleY に同じ値を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • scale: number

      拡大率

    Returns void

scrollToPercentX

  • scrollToPercentX(perX: number, duration: number, easing?: function): void
  • Scroll to the specified horizontal offset (in percentage).

    指定の横スクロール位置(パーセント指定)へスクロールする。

    Parameters

    • perX: number
    • duration: number

      the duration to complete scroll. スクロール時間。

    • Optional easing: function

      the easing function. (e.g. Scrollable.Easing.Linear) イージング関数。

        • (rate: number): number
        • Parameters

          • rate: number

          Returns number

    Returns void

scrollToPercentY

  • scrollToPercentY(perY: number, duration: number, easing?: function): void
  • Scroll to the specified vertical offset (in percentage).

    指定の縦スクロール位置(パーセント指定)へスクロールする。

    Parameters

    • perY: number
    • duration: number

      the duration to complete scroll. スクロール時間。

    • Optional easing: function

      the easing function. (e.g. Scrollable.Easing.Linear) イージング関数。

        • (rate: number): number
        • Parameters

          • rate: number

          Returns number

    Returns void

scrollToX

  • scrollToX(x: number, duration: number, easing?: function): void
  • Scroll to the specified horizontal offset.

    指定の横スクロール位置へスクロールする。

    Parameters

    • x: number

      the horizontal scroll offset. 横スクロール位置。

    • duration: number

      the duration to complete scroll. スクロール時間。

    • Optional easing: function

      the easing function. (e.g. Scrollable.Easing.Linear) イージング関数。

        • (rate: number): number
        • Parameters

          • rate: number

          Returns number

    Returns void

scrollToY

  • scrollToY(y: number, duration: number, easing?: function): void
  • Scroll to the specified vertical offset.

    指定の縦スクロール位置へスクロールする。

    Parameters

    • y: number
    • duration: number

      the duration to complete scroll. スクロール時間。

    • Optional easing: function

      the easing function. (e.g. Scrollable.Easing.Linear) イージング関数。

        • (rate: number): number
        • Parameters

          • rate: number

          Returns number

    Returns void

setScrollOffsetPercentX

  • setScrollOffsetPercentX(perX: number): void
  • Set the horizontal scroll offset in percentage.

    横スクロールオフセットをパーセントで設定する。

    Parameters

    • perX: number

      the horizontal scroll offset (in percent) 横スクロールオフセット(パーセント)

    Returns void

setScrollOffsetPercentY

  • setScrollOffsetPercentY(perY: number): void
  • Set the vertical scroll offset in percentage.

    縦スクロールオフセットをパーセントで設定する。

    Parameters

    • perY: number

      the vertical scroll offset (in percent) 縦スクロールオフセット(パーセント)

    Returns void

shouldFindChildrenByPoint

  • shouldFindChildrenByPoint(point: CommonOffset): boolean
  • Check if the point may hit something. Called by the engine implicitly. No need to call this directly.

    ある地点がヒットテストに反応しうるかどうかをチェックする。 このメソッドはエンジンによって暗黙に呼び出される。直接呼び出す必要はない。

    Parameters

    • point: CommonOffset

    Returns boolean

show

  • show(): void
  • このEを表示状態にする。

    this.hide() によって非表示状態にされたエンティティを表示状態に戻す。 生成直後のエンティティは表示状態であり、 hide() を呼び出さない限りこのメソッドを呼び出す必要はない。

    Returns void

visible

  • visible(): boolean
  • このEが表示状態であるかどうかを返す。

    Returns boolean