创建JS:“容器”的用法

时间:2013-08-06 15:31:29

标签: javascript createjs

我正在创建一个RPG,并希望将所有精灵添加到spriteContainer,将NPC添加到npcContainer等等......原因是我可以简单地将容器及其相关标签添加到舞台而不是每个精灵。

我将使用create js container对象。

我想为容器设置初始x,y,但是然后将容器中的每个元素设置为带有标签的其他x,y。我应该不使用容器吗?容器的原因是什么?

由于


编辑:我在开头调用addNPCs创建了一堆东西,然后将它们添加到容器中:

        function addNPCs() {
            var NPCs = [];
            spriteContainer = new createjs.Container();

            spriteContainer.x = spriteContainerX-camX;
            spriteContainer.y = spriteContainerY-camY;  

            spriteBMP = new createjs.Bitmap("myBmp.png");           
            spriteBMP2 = new createjs.Bitmap("myBmp.png");
            spriteBMP3 = new createjs.Bitmap("myBmp.png");  

            spriteLabel = new createjs.Text("Hey kitty! Come talk to me!", "14px Arial", "white");
            spriteLabel.y = -70;    

            NPCs.push(spriteBMP, spriteBMP2, spriteBMP3);   

            for (npcs in NPCs) {
                spriteContainer.addChild(npcs);
                console.log("added " + npcs);
            }

        }

然后添加该容器:

stage.addChild(spriteContainer);

1 个答案:

答案 0 :(得分:2)

容器提供了一种非常简单的方法来对对象进行分组,并将它们作为一个对象进行控制。这使得它很简单:

  • 一次转换/翻译一组项目(移动,旋转和缩放容器,设置alpha,compositeOperation,阴影等)
  • 将一组对象缓存为一个(container.cache(0,0,w,h)以提高性能
  • 维护不同的排序顺序,例如将所有前景元素添加到容器,将所有游戏精灵添加到容器,将所有背景元素添加到容器 - 然后在每个容器内排序 - 但不要担心不同层中的元素混淆

简而言之,它只是一种管理内容组的有用方法。您不需要使用它,但它不会产生巨大的性能影响 - 因此它绝对适用于任何复杂的事物。