1

コンテナに関連付けられたこのステージがあります:

html:

<div id="container">

スクリプト 1:

var stageInFirstScript = new Kinetic.Stage({
    container: document.getElementById('container'),
    width: this.SKETCH_WIDTH,
    height: this.SKETCH_HEIGTH
});

2 つ目のスクリプトでは、作成したばかりのステージで形状を操作する必要があります。このようなものでstageInFirstScriptを取得することは可能ですか?

スクリプト 2:

var stageInSecondScript = document.getElementById('container').RetrieveExistingStage();
//now I have retrieved stageInFirstScript
//I can add shapes to it, etc....

任意のヘルプまたは代替ソリューションをいただければ幸いです!

4

1 に答える 1

2

作成した変数、つまり「stageInFirstScript」を簡単に参照できるはずです。ただし、2 つのスクリプトが 2 つの別々のスコープ内にある場合は、この変数をグローバルにしてから、次のように 1 つのようにアクセスしてみてください (この例では jquery を使用します)。

Script1.js:

var stageInFirstScript; // declaring global variable

$(window).load(function() {

   // assigning new stage to the global variable

   stageInFirstScript = new Kinetic.Stage({
       container: document.getElementById('container'),
       width: this.SKETCH_WIDTH,
       height: this.SKETCH_HEIGTH
   });

});

そしてscript2.jsで:

function doSomething() {

    // accessing global variable and calling its method

    stageInFirstScript.setHeight(300); 

}

これは、変数が定義された後、この場合はウィンドウがロードされた後に関数が呼び出される限り機能するはずです。

コンテナーのステージを取得しようとしている場合、私が考えることができる方法の 1 つは、キネティック ステージをコンテナー (またはコンテナーの ID など) に関連付ける配列を作成することです。

于 2012-11-09T16:48:31.063 に答える