2010-08-16 69 views
0

我正在使用加载程序AS3.0加载外部图像。我需要每次加载一张随机图像,并在5秒左右之后使用计时器加载新图像。当我打开第一个形象,我叫......使用ActionScript 3.0加载外部图像然后淡入淡出...?

myMovieClip.addChild(loader); 

我第一次通话后...

if (myMovieClip.numChildren > 0) { 
    myMovieClip.addChildAt(loader, 1); 
} 

所以,这应该加上后面的第一个新加载的图像.. 。这似乎是工作...

我想要做的下一步是在这两个剪辑之间淡入淡出,所以前面的一个淡出几秒钟,然后最终被删除时,它是不可见的。几秒钟后,我加载下一个并重复该过程。

目前,我启动一个定时器,当它激发我做到这一点...

if (Loader(myMovieClip.getChildAt(0)).content.alpha <= 0) 
{ 
    // Check if the alpha value is 0...if so, remove the image and stop the timer 
    myMovieClip.removeChildAt(0); 
    timer.stop(); 
} 
else 
{ 
    // Increase transparency 
    Loader(myMovieClip.getChildAt(0)).content.alpha -= 0.1; 
} 

的问题是,我的衰落常规不起作用。加载一个图像,下一个图像在完成加载后立即显示。

我的代码感觉像是一个黑客...有没有更好的方式,实际上工作...?

回答

2

几个指针。

在添加图片之前,请确保其alpha值等于0,否则您的图片将立即显示。

福克斯是正确的,你可以使用一个类来处理褪色或你的图像,即图像的alpha属性的补间。我个人更喜欢使用TweenMax或TweenLite(greensock.com),但是有很多不同的类可以很好地处理这个问题。

您可以使用补间类的onComplete事件在图像不再可见时将其删除。

你必须确保下一张图片在开始淡入淡出之前被加载,所以我建议在加载前一个图片后立即调用下一张图片,并在开始淡入淡出之前检查布尔值。

+1

+1。对于补间,我建议使用eaze:http://code.google.com/p/eaze-tween/ – back2dos 2010-08-16 13:56:40

+0

还没有尝试过那个:) thx! – PatrickS 2010-08-16 14:28:05

+0

我第二个TweenLite。 onComplete事件正是需要的。 – knuckfubuck 2010-08-17 00:59:14