0

我有这个函数,我想在其中获取一个影片剪辑(函数目标)并将其更改为另一个。问题是它显然会在加载新剪辑之前删除影片剪辑。

var changePeca:Loader = new Loader;
var changeLoad:URLRequest = new URLRequest(e.target.name.substr(0,4)+".png");
changePeca.load(changeLoad);

e.target.removeChildAt(0);
e.target.addChild(changePeca);

我知道我必须使用这个Event.COMPLETE东西,但是我怎么说要删除哪个影片剪辑,因为我不能再使用e.target了?

4

1 回答 1

1

“问题在于它显然会在加载新剪辑之前删除影片剪辑。”

因为你的代码说这样做!:) 您需要添加事件侦听器来检查是否已加载内容。

private var holderMC:Sprite;
private var imageLoader:Loader;

private  function load(e:Event):void
{
    holderMC = e.target as Sprite // or something else you have there, just store it.
    imageLoader = new Loader ();
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoadComplete)
    imageLoader.load(new URLRequest(e.target.name.substr(0, 4) + ".png"));
}

private function handleLoadComplete(e:Event):void 
{
    if(holderMC.numChildren > 0)
        holderMC.removeChildAt(0);

    holderMC.addChild(imageLoader.content)
}
于 2012-05-11T09:19:26.120 回答