Flash AS3 - 如何替换/交换动画片段中的图像?

时间:2010-09-30 16:58:02

标签: flash actionscript-3

我有一个明显加载的位图,并作为子项添加到movielip mc 然后我想稍后加载另一个图像并删除该子项并替换为新的.. 由于某种原因,我的代码不起作用..我不知道我做错了什么

我为名为openBigImage的缩略图添加了一个监听器 所以基本上新的文件路径和文件名应该替换上一个图像

imgLoader是一个动画片段,其中包含先前被称为img0, img1等的varius图像。

theThumbs包含图像文件名为字符串

我的问题是:应该是img.addChildAt(bitmapContent,0);作为交换函数?我可以删除img孩子,但我无法取代它...

function openBigImage(e) 
{
    var e = e.target;
    var i = e.parent.name1;
    var z = e.parent.name2;
    var tu = theThumbs[i][z];   
    var img =  imgLoader.getChildByName("img" + i);
    var newimg:Loader = new Loader();
    var fileRequest:URLRequest = new URLRequest(tu);    
    newimg.load(fileRequest);
    newimg.name = i;
    newimg.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadCompleted2);
    img.removeChildAt(0);
}
function onLoadCompleted2(e:Event):void {
    var bitmapContent:Bitmap = Bitmap( e.target.content );
    bitmapContent.smoothing = true;
    var i = e.target.loader.name;
    var img =  imgLoader.getChildByName("img" + i); 
    trace("img" + i)
    img.addChildAt(bitmapContent,0);
}

1 个答案:

答案 0 :(得分:0)

老问题,没有解决方案?

function onLoadCompleted2(e: Event):void
{
    // ...
    trace("replacing image");
    var index: int = img.getChildIndex(oldImage);
    img.removeChildAt(index);
    img.addChildAt(newImage, index);
}

作为替代方案,您可以使用Sprite,然后清除并用新图片填充它。