2

ここに非常に単純なスクリプトがあります。

stage = new createjs.Stage("myCanvas");

circle = new createjs.Shape();
circle.graphics.beginFill("red").drawCircle(0,0,40);

そして私のHTML

<!DOCTYPE HTML>

<html>
<head>

<link rel="stylesheet" type="text/css" href="mainStyle.css">
<script src="mainScript.js"></script>
<script src="create.js"></script>

</head>
<body>  

    <canvas id="myCanvas" width=1000 height=500 ></canvas>

</body>
</html>

しかし、それは機能しません。このエラーが発生します:

「createjsは定義されていません」

しかし、私のHTMLでは、ファイルにリンクされています。これを引き起こしている可能性のあるものは他にありますか?

4

3 に答える 3

5
<script src="create.js"></script>
<script src="mainScript.js"></script>

コードは、create.js順序の問題を含めて実行する必要があります。

于 2013-02-22T04:03:17.393 に答える
4

コードにはいくつか問題があります。

まず、質問に直接答えるには、createjsオブジェクトを作成するライブラリをロードしてから、それをインスタンス化するスクリプトをロードする必要があります。頭の中にあるスクリプトタグの順序を変更します。

次に、canvas要素がDOMに追加される前に、インスタンス化が実行されます。これを修正するには、ドキュメントのonloadイベントをリッスンする必要があります。次に、コードを実行します。

3番目に、赤い円のオブジェクトを実際に表示するには、それをキャンバスに追加してから、stagesupdateメソッドを呼び出す必要があります。

元:

window.onload = function(){
    stage = new createjs.Stage("myCanvas");

    circle = new createjs.Shape();
    circle.graphics.beginFill("red").drawCircle(0,0,40);

    stage.addChild(circle);

    stage.update();
}
于 2013-02-22T04:36:08.737 に答える
0

角度のあるプロジェクトの場合、上記の回答は問題を解決するのに十分ではない可能性があります。私がしたこと:

myAngularModule.service('preloadservice', function ($rootScope) {

  if (typeof createjs === 'undefined') {
    setTimeout(continueAfterWait, 500);
  } else {
    continueAfterWait();
  }

  var continueAfterWait = function () {
    var queue = new createjs.LoadQueue();
    //...
  } 
}
于 2015-01-29T10:17:25.043 に答える