0

我想在我的 Flash 文件中有一个可以从另一个程序更改的图像。

在 ActionScript 2 中,我使用了 a Loader,在 Timeline 中设置contentPath并制作了 a Motiontween,效果非常好。

但是现在在 Actionscript 3 中我也这样做了,我使用UILoader,我设置source并创建了 aMotiontween但现在图像消失了一小段时间,每次 Tween 重新开始时。

有没有办法正确地做到这一点?

我现在的代码:

var myXML:XML;
var myLoader:URLLoader = new URLLoader();

var text:String;
var imagePath:String;

myLoader.load(new URLRequest("C:/Flash/paths.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void
{       
    myXML = new XML(e.target.data);

    text = myXML.text;
    imagePath = myXML.path;

    TextContainer.text = team1name;
    imageContainer.source = team2logoPath;

    trace("trace");    
}

文本不闪烁,但图像闪烁,所以我不认为 XML 加载器是它与 AS3 一起工作而不是与 AS3 一起工作的原因。

即使我每次只更改图像的来源,图像也会在短时间内不可见:

imageContainer.source = "C:/images/no_image.png";
4

2 回答 2

1

好的,您得到的闪烁是下载图像或在您提供的 3sample 中从磁盘加载图像所需的加载时间。如果您想避免这种情况,您需要以一种或另一种方式预加载图像。
您会发现开源预加载很容易。我要做的是创建一个图像容器数组,然后从舞台中删除当前元素,然后在您想要更改图像时将下一个元素添加到数组中。
使用此方法,您将源分配给项目,即使它没有显示,它也会下载它。

于 2012-06-27T20:11:31.020 回答
0

检查加载内容时是否触发 UILoader 的 Event.COMPLETE 事件,然后在事件处理程序中启动补间。

于 2012-06-24T22:51:35.903 回答