私は1年前にそれに近いものを作成しました。実際、それが現場で何か新しいものであるかどうかを検索して、このスレッドを見つけました。ここで私が作成したものを見ることができます:https ://github.com/thiagomata/CanvasBox/blob/master/src/main/New.js
私のプロジェクトは、ほぼ100%OOPです。そこで、この事実を利用してソリューションに焦点を合わせました。この「クラス」を「New」という名前で作成します。これは、最初にオブジェクトをロードし、その後にオブジェクトをロードするために使用されます。
これを使用している人の例:
var objSquare = New.Square(); // Square is loaded and after that instance is created
objSquare.x = objBox.width / 2;
objSquare.y = objBox.height / 2;
var objSomeExample = New.Stuff("some parameters can be sent too");
このバージョンでは、すべてのjsファイルの位置で一部のjsonを使用していません。あなたがここで見ることができるように、マッピングはハードコアです:
New.prototype.arrMap = {
CanvasBox: "" + window.MAIN_PATH + "CanvasBox",
CanvasBoxBehavior: "" + window.MAIN_PATH + "CanvasBoxBehavior",
CanvasBoxButton: "" + window.MAIN_PATH + "CanvasBoxButton",
// (...)
};
しかし、これをより自動化してください。gulpやgruntを使用することは、私が考えていることであり、それほど難しくはありません。
このソリューションは、プロジェクトで使用するために作成されました。そのため、任意のプロジェクトで使用できるようにするには、コードにいくつかの変更が必要になる場合があります。しかし、出発点かもしれません。
お役に立てれば。
前に言ったように、これはまだ作業中の進歩です。しかし、gulpを使用して最新の状態に保つ、より独立したモジュールを作成しました。
すべての魔法のキューは次のリンクにあります:https:
//github.com/thiagomata/CanvasBox/blob/master/src/coffee/main/Instance.coffee
https://github.com/thiagomata/CanvasBox/blob/master /src/node/scripts.js
https://github.com/thiagomata/CanvasBox/blob/master/gulpfile.js
Instance.coffeeのこの行に特別な外観が必要です
###
# Create an instance of the object passing the argument
###
instaceObject = (->
ClassElement = (args) ->
window[args["0"]].apply this, args["1"]
->
ClassElement:: = (window[arguments["0"]])::
objElement = new ClassElement(arguments)
return objElement
)()
この行により、ファイルをロードした後にオブジェクトのインスタンスを初期化できます。createメソッドで使用されるように:
create:()->
@load()
return instaceObject(@packageName, arguments)