Bitsmist
Docs» UnitPerk

UnitPerk

継承:Perk セクション名:unit 優先度:400

概要

UnitPerkはクラスファイルのロードなど、ユニットのロードとインスタンス化に関する機能を付与します。

設定

書式-グローバル設定

全ユニットに共通な設定はグローバル設定の“system.unit”セクションに記述します。

{
    "system": {
        "unit": {
            "options": {
                "path": String,
            }
        }
    }
}

書式-ユニット固有設定

各ユニット固有の設定は“unit”セクションに記述します。

“unit.units”セクションには、動的に追加するユニットの一覧を記述します。<unitName>の値として設定するオブジェクトは、追加するユニットに対する設定となります。ここで記載されてない設定も含め、全ての設定を記述することができます。ここで記述された値は、そのユニットの設定にマージされます。

{
    "unit": {
        "options": {
            "adjacentPosition": "beforebegin"|"afterbegin"|"beforeend"|"afterend",
            "autoLoad": Boolean|String,
            "autoMorph": Boolean|String,
            "className": String,
            "fileName": String,
            "parentNode": String,
            "parentUnit": String,
            "path": String,
            "query": String,
            "replaceParent": Boolean,
            "syncOnAdd": String,
            "tag": String,
        },
        "units": {
            <unitName>:  {
                (unit settings)
            },
            ...
        }
    }
}

書式-タグ属性

いくつかの設定は、タグ属性で指定することもできます。

<my-unit
    bm-autoload=Empty|String
    bm-automorph=Empty|String
    bm-classname=String
    bm-filename=String
    bm-path=String
></my-unit>

"adjacentPosition"

型:String

ユニットを挿入するポジションを指定します。 “beforebegin”、“afterbegin”、“beforeend”、“afterend”のいずれかを指定できます。意味は標準のinsertAdjacentHTML()のposition引数と同じです。


"autoLoad" / bm-autoload

型:Boolean|String デフォルト:False

ユニットに必要なファイルを自動的にロードすることを示します。値としてTrue、ユニットのJSファイルへのURL、HTMLファイルへのURLのいずれかを指定することができます。Trueの場合は、デフォルトのパスとファイル名が使用されます。HTMLファイルが指定された場合、モーフィング後に指定されたHTMLファイルがロードされます。

bm-autoload属性を指定した場合、値が指定されていればファイルへのURL、値が指定されてなければTrueとみなされます。


"autoMorph" / bm-automorph

型:Boolean|String デフォルト:“BITSMIST.v1.Unit”

既存のクラスを使ってユニットをインスタンス化します。指定したクラスを継承した新しいクラスが作成され、それがタグに紐づけられます。指定するクラスがまだ存在しない場合は、autoLoadオプションも同時に使用してクラスをロードする必要があります。Trueの場合は、デフォルトのUnitオブジェクトが使用されます。

bm-automorph属性を指定した場合、値が指定されていればクラスの名称、値が指定されてなければTrueとみなされます。


"className" / bm-classname

型:String デフォルト:(説明参照)

ユニットのクラス名を指定します。指定がない場合は、タグ名のハイフンの前後の文字の頭を大文字にし、ハイフンを取り除いてつなげたものがクラス名となります。


"fileName" / bm-filename

型:String デフォルト:<タグ名>

ユニットのファイル名を拡張子なしで指定します。指定がない場合は、タグ名がファイル名となります。 設定、HTMLファイル 、CSSファイル等のファイルをロードする際のファイル名としても使用されます。


"parentNode"

型:String

このユニットを追加するノードを指定します。ノードは、parentUnitで指定されたユニットの配下にある必要があります。指定がない場合、親ノードの直下に追加されます。


"parentUnit"

型:String デフォルト:this

このユニットを追加する親のユニットを指定します。値には、basic.locateスキルのtarget引数と同じものを指定します。指定がない場合は、自身に追加します。


"path" / bm-path

型:String

ユニットのパスを指定します。“system.unit.options.path”と“unit.options.path”を繋げたものが、デフォルトのパスとして使用されます。設定、HTMLファイル 、CSSファイル等のファイルをロードする際のパスとしても使用されます。


"query"

型:String

ファイルを取得する際にURLに付加されるクエリーです。


"replaceParent"

型:Boolean デフォルト:False

親ノードを置き換えるか指定します。


"syncOnAdd"

型:Boolean|String デフォルト:False

文字列が指定された場合、ユニットを追加後に、追加したユニットが指定した状態になるのを待ちます。Trueの場合は、“ready”になるのを待ちます。

状態の名称は、リファレンス - StatuePerk - ステート -statusを参照してください。


"tag"

型:String

ユニットのタグを終了タグも含めて指定します。この値でHTMLに挿入されます。

<unitName>

型:String

ユニットの名前を指定してください。

イベントハンドラ

doApplySettings

“unit.units”セクションから設定を読み込み、materializeスペルを使ってユニットを追加します。

参照する設定

  • unit.units

インベントリ

units

型:Object 対象:インスタンス

このユニットに追加されたユニットを保持するオブジェクトです。それぞれのアイテムは以下のキーを持っています。

キー型説明
objectUnit追加したユニットです。

スペル

materialize

型:Unit 対象:Unit

ユニット内に新たなユニットを追加します。追加したユニットのインスタンスは、インベントリ内のunitsに追加されます。クラスファイルのロードが必要な場合は、autoLoadまたはautoMorphオプションをsettings引数に指定してください。ファイルが summonスペルを使って、ロードされます。

パラメータ

パラメータ型説明
tagName
必須
String追加するユニットのタグ名です。
settingsObject追加するユニットの設定情報です。設定の<unitName>の値に設定する値と同じものです。
optionsObjectロードオプションです。以下のキーがあります。
“syncOnAdd”Boolean設定のsyncOnAddと同じです。こちらの方が優先度が高くなります。

戻り値

追加したユニットのインスタンスです。

参照する設定

  • unit.options.adjacentPosition
  • unit.options.parentNode
  • unit.options.replaceParent
  • unit.options.syncOnAdd
  • unit.options.tag

materializeAll

型:Undefined 対象:Unit

ユニット内に存在する、ロードが必要な全てのユニットをインスタンス化します。それぞれのユニットに対し、materializeスペルを使ってインスタンス化を行います。

パラメータ

パラメータ型説明
rootNode
必須
HTMLElementロード対象の基点となるノードです。
optionsObjectロードのオプションです。有効なキーは以下のものがあります。
“waitForTags”
デフォルト:false
BooleanTrueの場合、ロードした全ユニットが“ready”状態になるのを待ちます。

戻り値

なし。

参照する設定

  • bm-autoload
  • bm-automorph

summon

型:Undefined 対象:Unit

ユニットのクラスファイルをロードします。ファイルのロードが完了した後は、ユニットのタグをドキュメントツリーに追加することで、インスタンス化できます。ロード前にタグが存在する場合、このスペルが完了すると自動的にインスタンス化されます。

パラメータ

パラメータ型説明
tagName
必須
Objectロードするユニットのタグ名です。
settingsObjectユニットの設定です。

戻り値

なし。

参照する設定

  • unit.options.autoLoad
  • unit.options.autoMorph
  • unit.options.className
  • unit.options.fileName
  • unit.options.path
  • unit.options.query
  • unit.options.splitclass
Previous Next

© 2019-2023 Masaki Yasutake

Bitsmist

Table of Contents

Table of Contents

  • UnitPerk
    • 概要
    • 設定
      • 書式-グローバル設定
      • 書式-ユニット固有設定
      • 書式-タグ属性
      • "adjacentPosition"
      • "autoLoad" / bm-autoload
      • "autoMorph" / bm-automorph
      • "className" / bm-classname
      • "fileName" / bm-filename
      • "parentNode"
      • "parentUnit"
      • "path" / bm-path
      • "query"
      • "replaceParent"
      • "syncOnAdd"
      • "tag"
      • <unitName>
    • イベントハンドラ
      • doApplySettings
    • インベントリ
      • units
    • スペル
      • materialize
      • materializeAll
      • summon

紹介

  • 概要
  • インストール
  • サンプルユニットを作る

ユニットの解説

  • 概要
  • プロパティとメソッド
  • 設定
  • ロード
  • イベント
  • HTML
  • CSS
  • パークによる拡張

リファレンス - ユニット

  • Unit

リファレンス - パーク

  • Perk(ベースクラス)
  • BasicPerk
  • EventPerk
  • SettingPerk
  • SkinPerk
  • StatusPerk
  • StylePerk
  • UnitPerk

リファレンス - ストア

  • Store
  • ChainableStore

リファレンス - ユーティリティ

  • AjaxUtil
  • ClassUtil
  • URLUtil
  • Util