2013-02-19 18 views

risposta

23

Per portare un DisplayObject di fronte dopo l'inserimento basta usare questo:

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

Grazie @stot. Questi metodi di stage createjs sono uguali a quelli vecchi di Flash btw. Per coloro che usano Adobe Animate, ecco la sintassi, come si fa riferimento allo stage: 'this.setChildIndex (my_movieclip, this.getNumChildren() - 1);' – jck

+0

Nelle versioni più recenti getNumChildren è deprecato. Puoi chiamare direttamente la proprietà numChildren ora. Fonte: http://createjs.com/docs/easeljs/classes/Container.html#method_getNumChildren – zozo

2

L'API Canvas has no built-in scene graph. Una volta che qualcosa è disegnato, il fatto che sia stato disegnato viene dimenticato, e non vi è alcun riferimento dell'oggetto legato alla tela. Ciò significa che, se l'oggetto cambia, potrebbe essere necessario ridisegnare l'intero canvas.

Pertanto, se è necessario disegnare gli oggetti di forma sopra gli oggetti grafici, disegnare la grafica prima di disegnare le forme. Avrai bisogno di ridisegnare le forme ogni volta che ridisegni la grafica.

È inoltre possibile inserire entrambe le forme e la grafica in Container e utilizzare indices del contenitore per controllare l'ordine di rendering degli oggetti.


Edit: Come notato da @stot's answer, si scopre che lo stage stesso può essere utilizzato per gli indici bambino gestiti. Questo perché lo stage estende la classe Container e quindi eredita i metodi di quella classe.

+2

In effetti, il setChildIndex, API addChild, e addChildAt vi aiuterà a fare questo. – Lanny

+0

è possibile impostare il suo indice usando stage.setChildIndex (..) vedere @stot answer – Glogo