使用jquery创建画布和元素

时间:2014-07-01 06:23:18

标签: jquery easeljs

我使用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将向左或向右移动,具体取决于单击的按钮

1 个答案:

答案 0 :(得分:0)

那么,在大多数jquery插件中你必须写下面的行开始吧?

return this.each(function()

然后我把这些行

var _this = this;

然后我使用_this

给出一个变量名
_this.mC = new createjs.Container();
_this.mShape = new createjs.Shape();
etc;

所以所有函数和处理程序只影响你将jquery插件放入的元素。