2010-07-18 104 views
1

我想要做的是加載2個不同的瑞士法郎使用2個不同的按鈕。閃存as3加載器問題

我想要發生的是當你點擊按鈕1時,它加載第一個swf,按鈕2加載第二個swf,從舞臺上首先刪除任何其他swf。

我似乎遇到的問題是裝載機。我似乎無法將圖像加載到加載程序中,而無需將它們放在舞臺上。當我嘗試即使我使用放置在裝載機另一個加載動態圖像也不斷重現的SWF的:

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

此信息任何幫助或教程將是巨大的。

+0

可以顯示一些代碼? – bhups 2010-07-18 18:47:54

回答

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;    
     } 
    } 


} 

} `