2013-08-28 11 views
5

Sto provando a impostare lo z-index per la mia linea Graphic(). Sto cercando di impostare la linea per essere sempre dietro le altre due forme. Two shapes and one line.Posizionamento Z-Index con CreateJS

Per quanto ne so, il primo elemento aggiunto è z = 0, il secondo è z = 1 e così via. È così? È z = 0 la migliore posizione o è la parte inferiore?

Sto provando a cambiare la loro posizione z usando stage.setChildIndex (elemento, livello z), giusto?

Grazie.

+0

Puoi pubblicare qualche codice? Non sono del tutto sicuro di quale sia l'aspettativa. – Lanny

risposta

5

1) Più basso è l'indice, più nel 'back' è l'oggetto, in modo da: 0 = bottom Si prega di tenere anche a mente che setChildIndex avrà esito negativo se si cerca qualcosa di simile: container.setChildIndex(child,500) se avete solo 4 bambini , quindi l'indice a cui vuoi impostare il bambino non deve essere fuori portata. Ciò significa che se vuoi ordinarli devi iniziare con l'indice più basso (solitamente 0).

2) Oppure si potrebbe anche dare i vostri oggetti di proprietà come ad esempio: child.zIndex = 500; e scrivere il proprio tipo-metodo utilizzare per la sortChildren -Metodo del contenitore, per esempio:

function sortByZ(a,b) { 
    if (a.zIndex < b.zIndex) return -1; 
    if (a.zIndex > b.zIndex) return 1; 
    return 0; 
} 

myContainer.sortChildren(sortByZ); 

// or a shorter version: 
function sortByZ(a,b) { 
    return a.zIndex - b.zIndex; 
} 

Quello modo in cui non dovresti preoccuparti di impostare zIndex, che è fuori dai limiti.

+0

E potrei recuperare il numero di bambini Se ottengo getNumChildren(), giusto? Grazie olsn, non solo mi sono sbagliato sull'ordine, ma anche sull'indice. Stavo facendo setChildIndex (figlio, 200) perché pensavo che sarebbe stato archiviato in un array illimitato. Grazie! – Cod1ngFree

+0

A proposito, l'indice va da 0 a getNumChildren()? – Cod1ngFree

+0

Sì, è corretto. Tutti quei metodi 'getNumChildren()' 'setChildIndex()' sono fondamentalmente * solo * funzioni wrapper per operazioni di base dell'array, 'getNumChildren()' per esempio restituirà semplicemente 'this.children.length' - e' setChildIndex() 'controllerà solo l'indice e eseguirà un'operazione di giunzione sul' children'-array - Quindi se vuoi imparare qualcosa vai a dare un'occhiata sotto il cofano: http://www.createjs.com/Docs/EaselJS /files/.._src_easeljs_display_Container.js.html#l331 - è un codice molto buono che il team di gskinner ha scritto :) – olsn

3

Con createjs valori validi per setChildIndex() si trovano nell'intervallo da 0 a numChildren() - 1. Una chiamata come:

container.setChildIndex(container.numChildren()); 

non riuscirà.

Cosa c'è di più quando si aumenta l'indice figlio - in esempio per un bambino con z-index 1 quando viene cambiato in 2, il bambino verrà posto di fronte all'oggetto all'indice 2. Nel caso si diminuisca l'indice spostando il bambino indietro verrà spostato dietro l'oggetto nella posizione di destinazione. Può aggiungere confusione quando non si è sicuri di quale sia l'indice z iniziale del bambino.