我正在尝试为我的行Graphic()设置z-index。我试图将线设置为始终落后于其他两个形状。
据我所知,添加的第一个元素是z = 0,第二个元素是z = 1,依此类推。是这样吗? z = 0是最高位置还是底部?
我正在尝试使用stage.setChildIndex(element,z-level)改变他们的z位置,是吗?
感谢。
答案 0 :(得分:4)
1)索引越低,该项目的“后退”越多,因此:0 = bottom
另请注意,如果您尝试使用setChildIndex
,container.setChildIndex(child,500)
将失败,如果您只有4个孩子,那么您要将子设置为的索引不得超出范围。这意味着如果你想对它们进行排序,你应该从最低的索引(通常是0)开始。
2)或者您也可以为对象提供一个属性,例如:child.zIndex = 500;
并编写您自己的排序方法,然后使用容器的sortChildren
- 方法,例如:
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。
答案 1 :(得分:4)
使用createjs,setChildIndex()的有效值范围为0到numChildren() - 1。电话如:
container.setChildIndex(container.numChildren());
会失败。
当您增加子索引时更是如此 - 例如,对于具有z-index 1的子项,当更改为2时,子项将被放置在索引2处的对象前面。如果您减少索引移动子项向后它将移动到目标位置的对象后面。当你不确定孩子的初始z指数是什么时,它可能会增加混乱。