2011-04-08 5 views
2

또 다른 문제는이 코드 조각의 마지막 줄을 unfortunately- 또 다른 하루를 벗어 범인입니다 : 이제오류 2006 인덱스가 경계

    uiBar = new mcUiBar(); 
     uiBar.x=-15; 
     uiBar.y=-5; 
     addChildAt(uiBar, numChildren-1); 

내가 연구하고 그래서는과에 뭔가가 알고 배열은 어떤 것보다 크지 만, 나는 알아 내지 못합니다. 나는 혼란 스럽다. 도와 주셔서 감사합니다. 건배

답변

4

범위 에러의 아웃하려고 깊이/인덱스 uiBar을 추가하려고하고 있기 때문에 오류가 발생한다 는 기본적으로 인덱스를 위해 제공하고있는 값이 "라고 말하고있다 표시 객체 컨테이너에있는 인덱스 배열의 범위를 벗어났습니다. 허용되는 범위는 0에서 n+1까지이며 여기서 n은 맨 위의 자식 색인입니다. 이것을 말하는 또 다른 방법은 0 ~ numChildren입니다. George가 맞습니다. numChildren - 1 = -1 일 때 문제가 발생할 것입니다.

다음 하위 레이어 인 레이어에 하위 레이어를 추가하려는 경우 위의 if 문을 사용하십시오. 그러나 상단 레이어에 추가하려는 경우 동의어 인 addChildAt(child, numChildren) 또는 addChild(child)을 사용해야합니다.

+0

예 ... 설명해 주셔서 감사합니다. 나는이 새로운 모든 btw ... 그리고 당신의 지식을 공유해 주셔서 감사합니다 !! 나는 또한 자바를 배우고 있지만 ActionScript 3.0을 선호한다. – londonbird

1

코드가 너무 작지만 마지막 줄 : addChildAt(uiBar, numChildren-1);이 문제가되는 것 같습니다.

아직 추가 된 자녀가없는 경우 (numChildren은 0) 어떻게됩니까? -1

addChildAt(uiBar, numChildren > 0 ? numChildren-1 : 0);

+0

플래시 CS5는 코드를 좋아합니다! 문제를 해결 한 후 (위의 코드로 문제가 해결 된 것 같음) 오류가 발생하여 if 문이 마음에 들지 않아이를 제거해야했지만이 인덱스를 해결하기 위해 지속적으로 노력하고 있습니다. . 환호성 x 이제 나는이 1009 오류를 지워야한다. – londonbird

+0

이상한 ...? 그냥 컴팩트 if/else입니다. Goodluck with the 1009 (hunch : null 인스턴스 확인)! 또한이 사이트를 편리하게 사용할 수 있습니다. http://www.actionscripterrors.com/ (http://www.actionscripterrors.com/?s=1009&searchsubmit=Find) –

+0

@londonbird addChildAt (uiBar, numChildren> 0? numChildren- 1 : 0); addChild (uiBar)와 동일한 표시 목록의 맨 위에 uiBar를 추가합니다. 이 경우에 addChildAt()가 필요한 이유는 무엇입니까? –

관련 문제