2010-06-15 3 views
0

클래스의 .fla 파일에 무비 클립을 추가하려고했습니다.클래스 메서드 내에서 MovieClip 추가

내 주요 FLA 파일 : main.fla ActionScript 파일 : script.as

는 같은 디렉토리에 남아

.

package { 
import flash.display.* 

public class MyClass extends MovieClip 
{ 
    public var target:MovieClip; 

    public function MyClass() 
    { 
     init(); 

    } 

    public function init() //if this method will be runed only inside class it should be private not public 
    { 
     trace('created'); 

    } 
    public function create() 
    { 
     target = new myfan(); 
     target.x = 400; 
     target.y = 50; 
     stage.addChild(target); 


    } 
} 

}

나는 main.fla 파일에서 동영상 클립을 추가 생성하는 함수를 만들어 사용 : 다음과 같이

script.as는 파일.

var trying:MyClass = new MyClass(); 
trying.create(); 

출력이 "생성 됨"이지만 출력 된 swf 파일 내에 "myfan"무비 클립이 있음을 의미합니다.

나는 하루 종일 검색했지만 많이 찾지 못했습니다.

클래스 파일에서 동영상 클립을 추가하려면 어떻게해야합니까?

친절한 도움에 감사드립니다.

답변

2

저는 swf에 script.as를 어떻게 첨부하는지 약간 혼란 스럽습니다. AS3의 클래스는 클래스 이름과 완전히 동일한 이름의 파일에 있어야하므로 파일의 이름은 MyClass.as로 지정해야합니다.

두 번째 질문은 정확히 myfan입니다. 그것은 당신의 도서관에있는 상징입니까? 그 상징에는 무엇이 들어 있습니까? ActionScript를 사용하여 심볼을 인스턴스화하는 대신 심볼을 스테이지로 드래그하면 어떻게됩니까?

마지막으로 MyClass을 인스턴스화하는 경우 어디에서 그렇게합니까? 타임 라인에있는 영화의 첫 번째 프레임에서? 변수 trying을 언제든지 표시 목록에 추가하지 않는다는 것을 알게되었습니다. 변수 stage이 null 일 수 있습니다. 다음을 추가하십시오 :

public function create() 
{ 
    target = new myfan(); 
    target.x = 400; 
    target.y = 50; 
    trace("Stage here?:", stage); 
    stage.addChild(target); 
} 

아무 것도 없는지 확인하십시오.

+0

제임스, 고맙습니다. 알아 냈습니다. 문제는 지정한대로 스테이지가 null입니다. 이 문제를 해결하려면 다음과 같이 표시 목록에 varible을 추가해야합니다. var 시도 : MyClass = new MyClass(); this.addChild (시도); trying.create(); 다음에 클래스 내에 movieClip을 추가 할 수 있습니다. – isa