2012-01-29 102 views
0

我可以從XML文件加載具有低於碼外部PNG文件,swaping外部圖像(負載 - >刪除 - >重負載)

function $LoadLogo($Logo:URLRequest,$Target:MovieClip) 
{ 
    var $Loader:Loader = new Loader(); 
    $Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, $LoadedFunction); 
    $Loader.load($Logo); 

    function $LoadedFunction(e:Event) 
    { 
     $Target.Logo.Image.addChild($Loader); 

    } 

} 
$LoadLogo("Logos/logo.png", ScaneLogo) 

但是,當我在XML改變PNG的網址,我想從「ScaneLogo.Logo.Image」中刪除這個加載的png,並在運行時加載新的png到「ScaneLogo.Logo.Image」。

電影層次如下

根 - > ScaneLogo(影片剪輯) - >標誌(影片剪輯) - >圖像(影片剪輯)

非常感謝現已。

回答

0
//create this variable outside the scope of the function 
var $Loader:Loader; 

function $LoadLogo($Logo:URLRequest,$Target:MovieClip):void { 

//remove all existing children/images from the movieclip 
    while ($Target.Logo.Image.numChildren > 0) { 
    $Target.Logo.Image.removeChildAt($Target.Logo.Image.numChildren-1); 
    } 

    //null the existing image loader to prevent a memory leak 
    $Loader = null; 

    $Loader = new Loader(); 
    $Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, $LoadedFunction); 
    $Loader.load($Logo); 

    function $LoadedFunction(e:Event):void { 

     $Loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, $LoadedFunction); 
     $Target.Logo.Image.addChild($Loader); 

    } 

} 
$LoadLogo("Logos/logo.png", ScaneLogo)