2011-11-11 2 views
0

나는 AS 파일을 만들어 클래스로 사용했다. 그 안에 버튼과 슬라이드 쇼 이미지라고 불렀다.AS3> 특정 프레임에서 클래스를 시작 하시겠습니까?

그 후 나는 타임 라인을 움직여 소개를하기로 결정했습니다. 내 문제는 모든 개체가 첫 번째 프레임에서 표시된다는 것입니다. 특정 프레임 후에 전체 클래스를 시작하는 방법이 있습니까? 참조

코드 :

package { 

    import flash.display.Loader; 
    import flash.net.URLRequest; 
    import flash.events.Event; 
    import flash.display.Sprite; 
    import flash.events.MouseEvent; 
    import flash.display.MovieClip; 


    public class play extends MovieClip { 

    private var loader:Loader = new Loader(); 

    private var images:Array = ["img/Layer_1.jpg", "img/Layer_2.jpg", "img/Layer_3.jpg", "img/Layer_4.jpg", "img/Layer_5.jpg", "img/Layer_6.jpg", "img/Layer_7.jpg", "img/Layer_9.jpg", "img/Layer_10.jpg", "img/Layer_11.jpg", "img/Layer_12.jpg", "img/Layer_13.jpg", "img/Layer_14.jpg"]; 
    private var triangleButton:triangle = new triangle; 
    private var squareButton:square = new square; 
    private var crossButton:cross = new cross; 
    private var circleButton:circle = new circle; 


    public function play() { 
     loadNextImage(); 

     addChild(loader); 
     loader.x = 137; 
     loader.y = 65; 

     //Buttons 
     addChild(triangleButton); 
     triangleButton.width = 28; 
     triangleButton.scaleY = triangleButton.scaleX; 
     triangleButton.x = 804; 
     triangleButton.y = 107; 
     triangleButton.addEventListener(MouseEvent.CLICK, slideGames); 


     addChild(circleButton); 
     circleButton.width = 28; 
     circleButton.scaleY = circleButton.scaleX; 
     circleButton.x = 825; 
     circleButton.y = 130; 
     circleButton.addEventListener(MouseEvent.CLICK, slideGames); 

     addChild(crossButton); 
     crossButton.width = 28; 
     crossButton.scaleY = crossButton.scaleX; 
     crossButton.x = 804; 
     crossButton.y = 155; 
     crossButton.addEventListener(MouseEvent.CLICK, slideGames); 

     addChild(squareButton); 
     squareButton.width = 28; 
     squareButton.scaleY = squareButton.scaleX; 
     squareButton.x = 780; 
     squareButton.y = 130; 
     squareButton.addEventListener(MouseEvent.CLICK, slideGames); 


    } 
    public function slideGames(event:MouseEvent):void { 
     loadNextImage(); 
    } 

    public function loadNextImage() : void { 
     // Increment the image 
     _imageIndex++; 

     // If we've reached the end of the array, start over 
     if (_imageIndex >= images.length) { 
     _imageIndex = 0; 
     } 

     // Now get the image source from the array and tell the loader to load it 
     var imageSource : String = images[_imageIndex] as String; 
     loader.load(new URLRequest(imageSource)); 
    } 
    // Next image to display 
    protected var _imageIndex : int = -1; 
    } 
} 

답변

3

예, 대신 클래스 (play())의 생성자에서 모든 것을 초기화, 당신은 다른 함수로 이동할 수 있으며, 타임 라인에서 해당 전화. 문서 클래스로 play 클래스를 사용하고 있다고 가정합니다.

그래서 대신

public function play() { 

당신은 당신이 원하는 경우이 시점에서 play()이라는 빈 생성자를 만듭니다

public function play_start() { 

로 이름을 변경합니다.

플래시 IDE에서 항목을 표시 할 프레임을 선택한 다음 키 프레임을 만듭니다. 키 프레임을 선택하고 액션 패널 (F9)으로 이동 한 다음 코드를 입력 :

this.play_start(); 

재생 헤드가 키 프레임에서 일단을, 당신의 코드가 실행되어야한다.

+0

굉장! 고맙습니다. 완벽하게 작동합니다! –

+0

정말 도움이되었습니다. 그것은 단지 더 많은 것을 필요로합니다. – donlaur

관련 문제