2009-08-26 3 views
0

방금이 질문을 제출했지만 어디에 게시했는지 알 수 없으므로 중복 된 경우 사과합니다.라이브러리 폴더의 모든 기호를 런타임에 스테이지에 추가하는 방법

Flash CS4 프로젝트의 경우 새로운 이미지를 계속 가져 와서 영화 클립으로 변환하고 라이브러리의 '장식품'폴더에 저장합니다. 이러한 모든 장식물은 프로그램이 초기화 될 때 특정 장소의 무대에 있어야합니다. 새 심볼을 추가 할 때마다 새 심볼을 스테이지로 드래그하는 대신, "장식"라이브러리 폴더에있는 모든 심볼을 런타임에 스테이지에 추가 할 수 있습니까? 원하는 경우

감사

답변

1

당신은 코드에서 그것을 할 수 있습니다,하지만 당신은 여전히 ​​코드에 기호의 이름을 추가해야 할 것이다. 즉, 폴더는 CS4 라이브러리에서 구성하기위한 편의 일뿐 코드 (AFAIK)로 변환되지 않습니다.

AS3에서 항목을 인스턴스화하려면 라이브러리에서 심볼을 마우스 오른쪽 단추로 클릭하고 "ActionScript로 내보내기"상자를 선택하십시오. 그것을 볼 수 없다면 고급 버튼을 클릭하십시오. Class는 심볼의 이름으로 기본 설정됩니다. ActionScript에서 인스턴스화하여 스테이지에 인스턴스를 추가 할 수있는 클래스입니다.

스테이지에 추가 그들을 통해 장식 이름과 루프의 배열을 유지할 수

: 당신이 증가 단지 뒤에 숫자와 같은 모든 인스턴스의 이름을 지정하는 경우

var ornaments:Array = [OrnamentGold, OrnamentSilver, OrnamentBronze]; 

for each(var ornament:Class in ornaments) 
{ 
    var ornamentClip:MovieClip = new ornament(); 
    addChild(ornamentClip); 
} 

, 당신은 자신을 절약 할 수 있습니다 한 번만 숫자를 하나씩 늘리십시오.

const NUM_ORNAMENTS:int = 5; 

for(var i:int = 0; i < NUM_ORNAMENTS; i++) 
{ 
    // ornaments are names Ornament0, Ornament1, Ornament2, etc. in the library 
    var ornamentClass:Class = new getDefinitionByName("Ornament" + i) as Class; 
    var ornamentClip:MovieClip = new ornamentClass(); 
    addChild(ornamentClip); 
} 
+0

이것은 내가 시도하려고했던 것입니다. actionscript를 통해 폴더에 액세스 할 수있는 방법이 있는지 알고 싶었습니다. 감사! –

+0

위대한 일을했습니다! –

관련 문제