Flash CS5/AS 3.0으로 게임의 Y 위치를 기준으로 모든 관련 동영상 클립을 그리면 심도를 시뮬레이트합니다. 즉, 스테이지의 아래쪽에있는 것들이 스테이지의 위쪽에 겹쳐집니다. 따라서 Y 위치가 10 인 MovieClip은 Y 위치가 20 인 MovieClip에 비해 색인이 낮아야하므로 두 번째 항목이 첫 번째 항목 위에 그려집니다.Y 위치를 기준으로 MovieClips의 하위 색인을 변경합니까?
나는 이것을 테스트하기 위해 빠르고 더러운 함수를 작성했습니다. 트레이스가 진행되는 동안 무대 위로 올라갈 때 트럭 인덱스가 0에 도달했음을 알았지 만, 너무 멀리 올라가면 무대에서 완전히 사라질 것입니다. 추적이 오류를 생성하는 시작 :
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/getChildIndex()
at EICT::Game/ReorganizeDisplayIndexes()
at EICT::Game/loop()
theTruck 플레이어 제어 차량 적의 무비 클립입니다, 바위는 그
없음 이벤트 리스너가없는 무비 클립을 포함하는 모든 배열은 콘입니다.
private function ReorganizeDisplayIndexes(): void
{
var drawableObjects:Array = new Array();
drawableObjects.push(theTruck);
drawableObjects = drawableObjects.concat(Enemies, Rocks, Bushes);
drawableObjects.sortOn("y", Array.DESCENDING | Array.NUMERIC);
drawableObjects.reverse();
trace(collisionLayer.getChildIndex(theTruck));
for (var a:int = collisionLayer.numChildren - 1; a >= 0; a--)
{
collisionLayer.removeChildAt(a);
}
for (var i:int = 0; i < drawableObjects.length; i++)
{
collisionLayer.addChild(drawableObjects[i]);
}
}
고마워, 나는 그걸로 주위를 망 쳤어. 그리고이 코드는 트럭을 처음부터 사라지게 할 책임조차 없다는 것이 밝혀졌다. 그래도 나는이 방법을 대신 사용할 것이다. –