javascript - 从 kineticjs 中的容器获取舞台

标签 javascript html canvas kineticjs

我将这个阶段关联到一个容器:

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....

任何帮助或替代解决方案将不胜感激!

最佳答案

您应该能够简单地引用您创建的变量,即“stageInFirstScript”。但是,如果这两个脚本在两个不同的范围内,请尝试将此变量设为全局变量,然后像这样访问它(我将在本示例中使用 jquery):

脚本 1.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,例如)相关联。

关于javascript - 从 kineticjs 中的容器获取舞台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13312046/

相关文章:

html - 在选项卡导航中垂直居中 ul

html - 如何在 flexbox 行之间添加一条线?

javascript - 如何同时使用 Express 和 & 符号?

javascript - 发布 API 问题后尝试从 api 获取

javascript - 在 Node Express 中检测社交机器人

javascript - 当所有 div 都被隐藏时,如何显示消息 "no results"?

javascript - 为什么IE9打开开发者工具不能直接绑定(bind)console.log?

相机的 javascript 操纵杆

javascript - 如何使用 jquery javascript 在 Canvas 上添加文本区域

javascript - 我正在玩 Canvas 。我怎样才能让它发挥作用?