2013-08-28 2 views
5

내 라인 그래픽()에 대한 Z- 인덱스를 설정하려고합니다. 나는 항상 다른 두 가지 모양 뒤에 선을 설정하려고 노력하고있다. Two shapes and one line.CreateJS를 사용하여 Z- 인덱스 위치 지정

내가 아는 한, 추가 된 첫 번째 요소는 z = 0이고, 두 번째 요소는 z = 1입니다. 그래? z = 0이 최고 자리입니까? 아니면 바닥입니까?

저는 stage.setChildIndex (element, z-level)를 사용하여 z 위치를 변경하려고합니다. 맞습니까?

감사합니다.

+0

몇 가지 코드를 게시 할 수 있습니까? 나는 기대가 무엇인지 완전히 확신하지 못한다. – Lanny

답변

5

1) 하단을 인덱스는 '뒤로'에서 더 그렇게 항목입니다 : container.setChildIndex(child,500) 만 4 자녀가있는 경우 : 당신이 뭔가를하려고하면 0 = bottomsetChildIndex 실패합니다 것을 명심하시기 바랍니다 따라서 자식을 설정하려는 색인은 범위를 벗어나지 않아야합니다. 즉, 정렬하려는 경우 가장 낮은 인덱스 (일반적으로 0)부터 시작해야합니다.

2) 또는 당신은 또한 예처럼 객체에게 재산을 줄 수 : child.zIndex = 500;를 예를 들어, 다음 컨테이너의 sortChildren -method을 사용하여 자신 만의 정렬 방법을 쓰기 :

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; 
} 

그 zIndex를 설정하는 것에 대해 걱정할 필요가 없다. 범위를 벗어난다.

+0

그리고 아이들의 수를 검색 할 수 있습니다. getNumChildren()을 사용하면 맞습니까? 감사합니다 olsn,뿐만 아니라 나는 순서에 관하여 오판되었다, 또한 색인에 관하여. 그것은 무한한 배열에 저장 될 것이라고 생각했기 때문에 setChildIndex (child, 200)를 수행하고있었습니다. 감사합니다. – Cod1ngFree

+0

그런데 인덱스가 0에서 getNumChildren()으로 변경됩니까? – Cod1ngFree

+0

네, 맞습니다. 모든 메소드 getNumChildren(), setChildIndex()는 기본적으로 기본 배열 연산을위한 * 단지 * wrapper-function입니다. 예를 들어'getNumChildren() '은'this.children.length'와'setChildIndex() '단지 색인을 검사하고'children' 배열에 splice-operation을 할 것입니다 - 그래서 뭔가 배우고 후드 아래서 살펴보고 싶다면 : http://www.createjs.com/Docs/EaselJS /files/.._src_easeljs_display_Container.js.html#l331 - gskinner 팀이 쓴 아주 좋은 코드입니다 :) – olsn

3

setChildIndex()에 대한 createjs 유효한 값의 범위는 0에서 numChildren() - 1입니다.

container.setChildIndex(container.numChildren()); 

과 같은 통화는 실패합니다.

자식 인덱스를 늘리면 무엇이 더 많습니까? 예를 들어 z- 인덱스 1을 가진 자식의 경우 2로 변경하면 자식이 인덱스 2의 개체 앞에 배치됩니다. 인덱스를 줄이면 아이가 뒤로 이동하면 대상 위치에서 대상 위치 뒤로 이동합니다. 자녀의 초기 z- 색인이 무엇인지 확실하지 않을 때 혼란을 야기 할 수 있습니다.