2013-02-19 42 views

回答

23

提起DisplayObject向前插入后只是用这样的:

stage.setChildIndex(displayObject, stage.getNumChildren()-1); 
+0

谢谢@stot。这些createjs阶段方法与旧版Flash相同。对于那些使用Adobe Animate的人来说,这里的语法就像这个stage所指的那样:'this.setChildIndex(my_movieclip,this.getNumChildren() - 1);' – jck 2016-06-06 13:34:37

+0

在新版本中,getNumChildren已被弃用。你现在可以直接调用属性numChildren。资料来源:http://createjs.com/docs/easeljs/classes/Container.html#method_getNumChildren – zozo 2016-10-14 09:33:39

2

The Canvas API has no built-in scene graph。一旦被绘制出来,它被绘制的事实就被遗忘了,并且没有任何与画布相关的对象的引用。这意味着,如果对象发生变化,整个画布可能需要重新绘制。因此,如果您需要在Graphics对象顶部绘制Shape对象,则只需在绘制Shapes之前绘制图形即可。每次重绘图形时都需要重绘形状。

您也可以将图形和图形放入Container,并使用容器的indices来控制对象的渲染顺序。


编辑:由于@stot's answer指出,事实证明,舞台本身可以用来管理子指数。这是因为Stage扩展了Container类,因此继承了该类的方法。

+2

事实上,setChildIndex,的addChild和addChildAt的API将帮助你做到这一点。 – Lanny 2013-02-22 21:47:04

+0

可以使用stage.setChildIndex(..)设置其索引,请参阅@stot answer – Glogo 2015-07-07 18:57:36