Class enchant.Class
クラスのクラス.
- Defined in: enchant.js
Constructor Attributes | Constructor Name and Description |
---|---|
enchant.Class(superclass, definition)
|
Method Summary
Method Attributes | Method Name and Description |
---|---|
<static> |
enchant.Class.applyMixingRecipe(target, source)
設定されたMixingRecipeを先クラスに実行して、新たなクラスを生成してこのクラスを戻る.
|
<static> |
enchant.Class.create(superclass, definition)
クラスを作成する.
|
<static> |
enchant.Class.getInheritanceTree()
クラスの継承関係を取得する.
|
<static> |
enchant.Class.mixClasses(firstClass, sourceClass, boolean, Function)
secondClassというクルスからMixingRecipeを生成して、firstClassというクラスに実行して、この結果を戻る.
|
<static> |
enchant.Class.mixClassesFromRecipe(firstClass, sourceClass, recipe, Function)
設定されたMixingRecipeを使用して、firstClassというクラスに実行して、この結果を戻る。設定されたMixingRecipeはsecondClassというクラスに関係があったほうがいい.
|
Class Detail
enchant.Class(superclass, definition)
- Parameters:
- {Function} superclass Optional
- 継承するクラス.
- {*} definition Optional
- クラス定義.
Method Detail
-
<static> {Function
} enchant.Class.applyMixingRecipe(target, source)設定されたMixingRecipeを先クラスに実行して、新たなクラスを生成してこのクラスを戻る. 先クラスが変更されない.
enchant.Class.MixingRecipe を参照してください.
Defined in: mixing.enchant.js.var recipe = new enchant.Class.MixingRecipe({ // ... see enchant.Class.MixingRecipe },{ // ... see enchant.Class.MixingRecipe },{ // ... see enchant.Class.MixingRecipe }); var NewClass = applyMixingRecipe(Class1,recipe);
- Parameters:
- {Function<constructor enchant.Classで生成された関数>} target
- MixingRecipeを実行される先クラス.
- {enchant.Class.MixingRecipe} source
- 先に新しい機能を追加するMixingRecipe.
- Returns:
- {Function<constructor enchant.Classで生成された関数>} sourceという製法とtargetというクラスを混ぜた結果クラス.
-
<static> enchant.Class.create(superclass, definition)クラスを作成する. ほかのクラスを継承したクラスを作成する場合, コンストラクタはデフォルトで 継承元のクラスのものが使われる. コンストラクタをオーバーライドする場合継承元の コンストラクタを適用するには明示的に呼び出す必要がある.
var Ball = Class.create({ // 何も継承しないクラスを作成する initialize: function(radius) { ... }, // メソッド定義 fall: function() { ... } }); var Ball = Class.create(Sprite); // Spriteを継承したクラスを作成する var Ball = Class.create(Sprite, { // Spriteを継承したクラスを作成する initialize: function(radius) { // コンストラクタを上書きする Sprite.call(this, radius * 2, radius * 2); // 継承元のコンストラクタを適用する this.image = core.assets['ball.gif']; } });
- Parameters:
- {Function} superclass Optional
- 継承するクラス.
- {*} definition Optional
- クラス定義.
-
<static> {Function[]} enchant.Class.getInheritanceTree()クラスの継承関係を取得する.
- Parameters:
- {Function} コンストラクタ.
- Returns:
- {Function[]} 親のコンストラクタ.
-
<static> {Function
} enchant.Class.mixClasses(firstClass, sourceClass, boolean, Function)secondClassというクルスからMixingRecipeを生成して、firstClassというクラスに実行して、この結果を戻る. デフォルト振舞はsecondClassの全ての関数やプロパティ、スーパークラスの関数やプロパティも使用して、 混ぜる先の関数をラップする(decorate).
_mixingプロパティでラップされた関数が自動的に、 sourceClassと混ぜる先の関数を呼び出されるので、関係なくてもいい.その上、どちらでもクラスの初期化関数を呼び出すデフォルト初期化関数が追加される.このデフォルト初期か関数の書式は:
([firstClass コンストラクタ 引数 1],...,[firstClass コンストラクタ 引数 n],[secondClass コンストラクタ 引数 1],...[secondClass コンストラクタ 引数 n])どちらでもクラスが変更されない
enchant.Class.MixingRecipe を参照してください.
Defined in: mixing.enchant.js.var MapGroup = enchant.Class.mixClasses(Map, Group,true); var map = new MapGroup(16, 16); var SpriteLabel = enchant.Class.mixClasses(Sprite, Label,true); var kumaLabel = new SpriteLabel(32,32,'Kuma');
- Parameters:
- {Function<constructor enchant.Classで生成された関数>} firstClass
- MixingRecipeを実行されるクラス.
- {Function<constructor enchant.Classで生成された関数>} sourceClass
- このクラスから、MixingRecipeが生成される.
- boolean Optional
- onlyOwnProperties Trueの場合、スーパークラスの関数やプロパティが無視されない.
- Function Optional
- initializeMethod 設定すると、新しいクラスの初期化にデフォルト初期化関数が使用されないけど、この関数が使用される.
- Returns:
- {Function<constructor enchant.Classで生成された関数>} どちらでもクラスを混ぜた結果クラス.
-
<static> {Function
} enchant.Class.mixClassesFromRecipe(firstClass, sourceClass, recipe, Function)設定されたMixingRecipeを使用して、firstClassというクラスに実行して、この結果を戻る。設定されたMixingRecipeはsecondClassというクラスに関係があったほうがいい. どちらでもクラスの初期化関数を呼び出すデフォルト初期化関数が追加される. このデフォルト初期か関数の書式は:
([firstClass コンストラクタ 引数 1],...,[firstClass コンストラクタ 引数 n],[secondClass コンストラクタ 引数 1],...[secondClass コンストラクタ 引数 n])どちらでもクラスが変更されない
enchant.Class.MixingRecipe を参照してください.
Defined in: mixing.enchant.js.var MapGroup = enchant.Class.mixClasses(Map, Group,true); var map = new MapGroup(16, 16); var SpriteLabel = enchant.Class.mixClasses(Sprite, Label,true); var kumaLabel = new SpriteLabel(32,32,'Kuma');
- Parameters:
- {Function<constructor enchant.Classで生成された関数>} firstClass
- MixingRecipeを実行されるクラス.
- {Function<constructor enchant.Classで生成された関数>} sourceClass
- MixingRecipに関係があるクラス。デフォルト初期化関数に使用される。
- {enchant.Class.MixingRecipe} recipe
- firstClassに実行される製法。 secondClassに関係があったほうがいい.
- Function Optional
- initializeMethod 設定すると、新しいクラスの初期化にデフォルト初期化関数が使用されないけど、この関数が使用される.
- Returns:
- {Function<constructor enchant.Classで生成された関数>} 製法でどちらでもクラスを混ぜた結果クラス.