2014-03-05 2 views
0

내 프로그램에서 사용하려고하는 .swf 파일이 있습니다. 나는 그것을 반복하기를 원하지 않는다. 단지 첫 번째 프레임에서 멈추고 내가 말할 때 프레임 만 바꾼다. 이것은 .swf 파일을 스테이지에 놓고 특정 인스턴스를 stop()으로 말할 때 작동합니다. 하지만 AS3 파일에 연결된 무비 클립이 필요합니다. 내가 그렇게 할 때 stop()은 더 이상 작동하지 않고 루핑을 계속 유지합니다.AS3에서 중지 기능을 사용할 수 없습니다.

 mybrick = new Brick(0, 0); 
     addChild(mybrick); 
     mybrick.stop(); 

오류가 발생하지 않지만 멈추지 않고 루핑을 유지합니다. 어떤 이유로 "심볼로 변환"및 "ActionScript로 내보내기"(다른 모든 객체가 코드를 따르는 방법)로 이동하면 stop() 함수가 더 이상 작동하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

편집 : 좋아, 여기에 주요 파일의

package 
{ 
import flash.display.MovieClip; 
import flash.events.KeyboardEvent; 
import flash.display.Stage; 
import flash.events.Event; 
import flash.ui.Keyboard; 
import flash.utils.Timer; 
import flash.events.TimerEvent; 


public class RetrievoidGame extends MovieClip 
{ 


    public var mybrick:Brick; 

    public function RetrievoidGame() 
    { 


     mybrick = new Brick(0, 0); 
     addChild(mybrick); 
     mybrick.stop(); 



     stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); 

     var newTimer = new Timer(1); 
     newTimer.addEventListener(TimerEvent.TIMER, everyFrame); 
     newTimer.start(); 

    } 

그리고 여기가 Brick.as이다 (나는 그들이 벽돌 영향을주지 않는거야 그렇지 않으면이 꽤 긴 것 때문에 다른 객체와 관련된 부분을 잘라) 파일 : 패키지 { import flash.display.MovieClip;

public class Brick extends MovieClip 
    { 


     public function Brick(myX, myY) { 

      x = myX; 
      y = myY; 


     } 



    } 
} 
+0

지속적으로'gotoAndPlay'를 사용하여 자산을 제어하는 ​​클래스 파일 : 그것은 당신에게 하드,이 코드를 사용하는 경우 myBrick.myAnimation.stop()

, 그것은 클래스 벽돌에 이러한 방법을 추가 확인을 위해 벽돌을 중지합니다 ? 이 경우'stop()'호출은 작동하지 않습니다. –

+0

내 코드에 gotoAndPlay가 없습니다. 위에서 보았 듯이 부모로부터 stop()을 호출 해 보았습니다. 그리고 브릭의 생성자에 stop()을 넣으려고했습니다. 나 또한 gotoAndStop (1) 시도했는데 그 중 하나를 작동하지 않습니다. – user3384588

+0

벽돌 동영상 클립의 타임 라인에 코드가 있습니까? 오류가 있는지 확인하십시오. –

답변

0

stop(); MovieClip의 타임 라인의 첫 번째 프레임 MovieClip을 이동하려면 부모에서 gotoAndPlay()를 사용하십시오.

+0

이 문제에 대한 사용자의 세부 정보가 대답이 아닌 경우 사용자가 stop()을 이미 호출했으며 계속 반복 될 가능성이 큽니다. –

+0

타임 라인에 코드를 작성하려면 어떻게해야합니까? 나는 정말 명백한 것을 놓친 것 같지만, 어떻게 열지는 모르겠다. – user3384588

+0

글쎄, .swf에 대한 코드는 어디에 있습니까? 플래시를 사용하고 있습니까? – Craig

0

당신은 멈출 수 없다 벽돌 때문에 다른 내부 무비 클립으로 만든 것을 그를 위해 루프 애니메이션? 내부 무비 클립이있는 경우 해당 무비 클립을 중지해야합니다. 타임 라인에 myAnimation과 같은 몇 가지 이름을 지정하고 중지하십시오.

override public function stop():void { 
    super.stop(); 
    stopMovies(this); 
} 

private function stopMovies(movie:MovieClip):void{ 
    var i: uint, len:uint = movie.numChildren, child:MovieClip; 
    for(i; i < len; ++i){ 
     child = movie.getChildAt(i) as MovieClip; 
     if(child != null){ 
      child.stop(); 
      stopMovies(child); 
     } 
    } 
} 
관련 문제