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"
"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スペルを使ってユニットを追加します。
参照する設定
インベントリ
units
型:Object
対象:インスタンス
このユニットに追加されたユニットを保持するオブジェクトです。それぞれのアイテムは以下のキーを持っています。
キー | 型 | 説明 |
---|---|---|
object | Unit | 追加したユニットです。 |
スペル
materialize
型:Unit
対象:Unit
ユニット内に新たなユニットを追加します。追加したユニットのインスタンスは、インベントリ内のunitsに追加されます。クラスファイルのロードが必要な場合は、autoLoadまたはautoMorphオプションをsettings引数に指定してください。ファイルが summonスペルを使って、ロードされます。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
tagName 必須 | String | 追加するユニットのタグ名です。 |
settings | Object | 追加するユニットの設定情報です。設定の<unitName>の値に設定する値と同じものです。 |
options | Object | ロードオプションです。以下のキーがあります。 |
“syncOnAdd” | Boolean | 設定のsyncOnAddと同じです。こちらの方が優先度が高くなります。 |
戻り値
追加したユニットのインスタンスです。
参照する設定
materializeAll
型:Undefined
対象:Unit
ユニット内に存在する、ロードが必要な全てのユニットをインスタンス化します。それぞれのユニットに対し、materializeスペルを使ってインスタンス化を行います。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
rootNode 必須 | HTMLElement | ロード対象の基点となるノードです。 |
options | Object | ロードのオプションです。有効なキーは以下のものがあります。 |
“waitForTags” デフォルト:false | Boolean | Trueの場合、ロードした全ユニットが“ready”状態になるのを待ちます。 |
戻り値
なし。
参照する設定
summon
型:Undefined
対象:Unit
ユニットのクラスファイルをロードします。ファイルのロードが完了した後は、ユニットのタグをドキュメントツリーに追加することで、インスタンス化できます。ロード前にタグが存在する場合、このスペルが完了すると自動的にインスタンス化されます。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
tagName 必須 | Object | ロードするユニットのタグ名です。 |
settings | Object | ユニットの設定です。 |
戻り値
なし。