2009-07-09 4 views
2

액션 스크립트 3을 사용하여 플래시 무비를 플렉스 (플렉스 빌더 3)에 임베드하고 플렉스에서 내 플래시 무비 호출 기능을 사용하고 싶습니다.플래시 및 플렉스

이것이 가능합니까?

+0

나는이 질문의 제목이 명확하지 않으므로이 문구를 바꿔야한다고 생각합니다. –

답변

2

예 가능합니다. 플렉스 애플리케이션에 다른 swf를 임베드하려면 몇 가지 옵션이 있습니다.

옵션 1 - SWFLoader 구성 요소에 swf 인라인을 포함합니다. 이 옵션은 swf가 다른 응용 프로그램 도메인에로드되어 Flex 응용 프로그램과 포함 된 컨텐트 간의 통신이 어려울 수 있으므로 몇 가지 보안 단점이 있습니다. 이 구성 요소에 ID를 부여하고 전체 이벤트를 수신 한 다음 SWFLoader의 content 속성과 대화하여로드 된 swf에 액세스 할 수 있습니다. 같은 뭔가 :

<mx:Script> 
    <![CDATA[ 
     private function completeHandler(event : FlexEvent) : void 
     { 
      trace(mySwfLoader.content); 
     } 
    ]]> 
</mx:Script> 


<mx:SWFLoader id="mySwfLoader" source="@Embed(source='YourSwf.swf') complete='completeHandler(event)" /> 

옵션 2 - 당신은 클래스와 SWF를 포함한 다음 코드에서 해당 클래스의 인스턴스를 생성하는 메타 태그를 사용할 수 있습니다. 이것은 많은 유연성을 제공하지만 객체를 선언적으로 추가 할 수 있다는 이점을 잃어 버리게됩니다. 같은 뭔가 :

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="creationCompleteHandler(event)"> 
    <mx:Script> 
     <![CDATA[ 

      [Embed(source="mySourceSwf.swf")] 
      private var mySourceSwfClass : Class 

      private function creationCompleteHandler(event : FlexEvent) : void 
      { 
       var mySourceSwf = new mySourceSwfClass(); 

       myCanvas.addChild(mySourceSwf); 

       trace(mySourceSwf); 
      } 
     ]]> 
    </mx:Script> 
    <mx:Canvas id="myCanvas" /> 
</mx:Application> 

옵션 3는 - 전혀 SWF가 없습니다. FLA에 UIMovieClip으로 포함시키려는 내용이 있는지 확인하십시오. 그런 다음 FLA를 게시 할 때마다 .swc 파일을 만들 수 있습니다. 그런 다음 플렉스 빌더에서 해당 swc 파일에 연결할 수 있습니다. 이렇게하면 해당 MovieClip이 프로젝트에서 참조 가능한 것으로 자동 추가됩니다 (이 부분에 대한 조사가 더 필요할 수도 있음). 당신이 두 세계, 동일한 응용 프로그램 도메인 내에서 선언적 마크 업 및 모든 혜택을 얻을이 방법

<local:MyMovieClipInSwc id="myMovieClip" /> 

: 기본적으로는 다음과 같은 작업을 수행 할 수 있습니다. 이 방법에 대해 내가 한 가지 말하고자하는 것은 Adobe가 UIMovieClip 클래스를 왕성하게 유지하고 성능을 저하시키는 것입니다. 어디에서나 앱을 사용하기 시작하면 앱이 매우 부진해질 수 있습니다.

관련 문제