обмен внешнего изображения (загрузить -> удалить -> перезагрузить) - PullRequest
0 голосов
/ 29 января 2012

Я могу загрузить внешний файл PNG с приведенными ниже кодами из файла XML,

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)

Но когда я изменяю URL PNG в XML, я хотел бы удалить этот загруженный PNG из "ScaneLogo.Logo.Image"и загрузить новый png в" ScaneLogo.Logo.Image "во время выполнения.

Иерархия фильмов, как показано ниже

root -> ScaneLogo (MovieClip) -> Logo (MovieClip)-> Изображение (MovieClip)

Большое спасибо уже сейчас.

1 Ответ

0 голосов
/ 29 января 2012
//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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...