2010-07-18 8 views
1

내가 뭘 하려는지 2 개의 다른 버튼을 사용하여 2 개의 다른 SWF를로드하는 것입니다.플래시 as3 로더 질문

내가 원하는 것은 버튼 1을 클릭하면 첫 번째 swf를로드하고 버튼 2는 다른 swf를 스테이지에서 먼저 제거하는 두 번째 swf를로드하는 것입니다.

로딩 중 문제가있는 것 같습니다. 무대에 올려 놓지 않고 이미지를 로더에로드 할 수 없습니다. 내가 사용하고 비록 내가 로더에 다른 하나를 배치하여는 SWF의의를 다시 계속해서 동적으로 이미지를로드 할 때이 정보에

stage.removeChild(loader); 
loader = new Loader();. 

어떤 도움이나 자습서 좋은 것입니다.

+0

당신은 몇 가지 코드를 보일 수 있는가? – bhups

답변

1

로드하려는 각 이미지마다 별도의 로더를 사용합니다. 여기에 구현할 수있는 방법에 대한 간단한 예가 있습니다 :

* 편집 : 패키지 부분을 자르고 있습니다. stackoverflow의 코드 파서를 이해하지 못해서 용서해주십시오. *

`package
{ import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.URLRequest;

public class LoaderTest extends Sprite 
{ 
    //two loaders 
    private var _firstLoader:Loader = new Loader(); 
    private var _secondLoader:Loader = new Loader(); 

    //just assuming you already have the buttons you want setup, use these as theoretical buttons 
    private var _buttonOne:Sprite; 
    private var _buttonTwo:Sprite; 

    public function LoaderTest() 
    { 
     _firstLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); 
     _secondLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); 
     _firstLoader.load(new URLRequest("path/to/image.jpg")); 
     _secondLoader.load(new URLRequest("path/to/image.jpg")); 

     _buttonOne.addEventListener(MouseEvent.CLICK, showImage); 
     _buttonTwo.addEventListener(MouseEvent.CLICK, showImage); 
    } 

    private function imageLoaded(e:Event):void 
    { 
     //do something if you want 
    } 

    private function showImage(e:MouseEvent):void 
    { 
     switch(e.target) 
     { 
      case _buttonOne : 
       if (!contains(_firstLoader)) 
       { 
        if (contains(_secondLoader)) 
         removeChild(_secondLoader); 

         addChild(_firstLoader); 
       } 
      break; 
      case _buttonTwo : 
       if (!contains(_secondLoader)) 
       { 
        if (contains(_firstLoader)) 
         removeChild(_firstLoader); 

         addChild(_secondLoader); 
       } 
      break;    
     } 
    } 


} 

은} `