我使用jQuery在画布中创建元素,并使用画布的easeljs帮助。 所以我制作了不止一个画布。我在其中创建了元素(按钮,图像等)。由于我使用jQuery,我给每个元素一个变量名。
当我单击第一个画布中的按钮时出现问题,它影响了最后一个画布中的元素。我想要的是每个按钮在自己的画布中影响元素。我意识到问题出现在变量名称声明中,因为所有元素最终都具有相同的名称。那么我该如何解决这个问题呢?我试图给每个元素赋予不同的名称,但它并不是有效的方式。由于命名是一个捆绑。
编辑:
好吧,jquery函数叫做时间轴,所以我这样应用它:
$('#object1').timeline();
$('#object2').timeline();
该对象是画布的名称。
在jquery中,脚本将类似于:
stage = new createjs.Stage('canvas_name');
mC = new createjs.Container();
stage.addChild(mC);
button = new createjs.Shape();
stage.addChild(button);
现在按钮应该只影响每个画布中的mC。但由于变量命名在每个画布中都是相同的,因此它仅影响最后一个画布中的变量命名。
希望这说清楚一点。
按钮和效果:
scrollPos = 0;
for(a=0; a<2; a++) {
scrollC2[a] = new createjs.Container();
scrollC2[a].id = a;
scrollC2[a].mouseChildren = false;
scrollC2[a].on('click', function(e) {
if(e.target.id == 0) {
if(scrollPos <= 0) {
}else {
scrollPos--;
}
}else if(e.target.id == 1) {
if(scrollPos >= 6) {
}else {
scrollPos++;
}
}
mC.x = -scrollPos * 500; //500 is the canvas width
canvas.update();
})
}
因此,如果单击该按钮,mC将向左或向右移动,具体取决于单击的按钮
答案 0 :(得分:0)
那么,在大多数jquery插件中你必须写下面的行开始吧?
return this.each(function()
然后我把这些行
var _this = this;
然后我使用_this
给出一个变量名_this.mC = new createjs.Container();
_this.mShape = new createjs.Shape();
etc;
所以所有函数和处理程序只影响你将jquery插件放入的元素。