2010-01-06 5 views
0

Flash CS4의 ActionScript 3에서 매우 이상한 버그가 있습니다. for 루프의 무대에 무비 클립을 추가 한 다음 뷰를 밖으로 이동하여 필요할 때 그들을 제거하고 제거 할 수 있도록합니다.addChild를 사용할 때 스테이지가 이동합니까?

나는 addChild()를 사용하여 무비 클립 중 하나가 무비에 추가 될 때마다 무대가 한 픽셀 씩 오른쪽으로 이동한다는 것을 알게되었습니다. 이상하게 들리 겠지만 문자 그대로 사실입니다 ... y 축의 0 줄은 무비 클립이 추가 될 때마다 오른쪽으로 한 픽셀 씩 이동합니다. 어떻게 이런 일이 일어날 지 모릅니다.

다음 작업을 수행하는 코드는 다음과 같습니다

 private function setupSlides():void 
    { 
     for(x = 0; x < TOTAL_SLIDES; x++) 
     { 
      var ClassReference:Class = getDefinitionByName("Slide" + (x+1)) as Class; 
      var s:MovieClip = new ClassReference() as MovieClip; 
      s.x = 9999; 
      s.y = 9999;    
      addChild(s); 
      slides[x] = s; 
     } 
    } 

어떤 생각?

+0

그것은하지 청소기 :

여기에 고정 된 코드는? - 또한 stage.stageWidth와 stage.stageHeight를 사용합니다. 실제로 무대가 넓어지는 것을 알 수 없기 때문입니다. – Carlo

답변

0

게시 후, 나는 루프 카운터 변수 (x)를 선언하지 않은 것으로 나타났습니다. 나는 그것을 선언했고, 이상한 연출은 없어졌다. 내가 왜 선언되지 않은 변수 오류를주지 않았는지 궁금합니다. 당신이로 addChild JUSE 및 표시하지 않을 때 그들을로 removeChild 경우

 private function setupSlides():void 
    { 
     for(var x:int = 0; x < TOTAL_SLIDES; x++) 
     { 
      var ClassReference:Class = getDefinitionByName("Slide" + (x+1)) as Class; 
      var s:MovieClip = new ClassReference() as MovieClip; 
      s.x = 9999; 
      s.y = 9999;    
      addChild(s); 
      slides[x] = s; 
     } 
    } 
+1

나는 x가 그 자체로 묵시 된 this.x이기 때문에 내기를했다. 그것은 무대 자체의 x와 y 좌표를 나타낼 것이기 때문이다. 그래서 루프에 "i"와 같은 다른 문자를 사용하는 것이 더 좋습니다. 감사합니다 StackOverflow! 우리가이 작은 대화를 나눌 수있어 기쁘다. – user54331

+0

예; _x 또는 유사한 것을 사용하는 것이 가장 좋습니다. 나는 또한 일반적으로 모든 for 루프 중 하나를 사용하지 않는다. 1.) for for 다른 루프를 중첩한다. 2.) 가독성을 위해 변수에 대해보다 구체적으로 설명 할 필요가있다. – jml

관련 문제