1

我将此阶段与容器相关联:

html:

<div id="container">

脚本1:

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

在第二个脚本中,我需要操纵刚刚创建的舞台上的形状。是否可以使用这样的方法检索 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”。但是,如果这两个脚本在两个不同的范围内,请尝试将此变量设为全局变量,然后像这样访问它(我将在此示例中使用 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); 

}

只要在定义变量之后调用函数,这应该可以工作,在这种情况下是在加载窗口之后。

如果您希望获得任何容器的阶段,我能想到的一种方法是创建一个数组,将动力学阶段与容器(或它们的 id)相关联。

于 2012-11-09T16:48:31.063 回答