我正在 AS3.0 中使用 Loader 类加载外部图片。我需要每次加载一个随机图像,我使用计时器在5秒左右后加载一个新图像。当我加载第一张图片时,我打电话给...
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;
}
问题是我的褪色程序不起作用。一个图像加载,下一个图像在完成加载后立即显示。
我的代码感觉有点像黑客......有没有更好的方法可以实际运作......?
答案 0 :(得分:2)
一些指示。
在添加图片之前,请确保其alpha等于0,否则您的图片会立即显示。
Fox是对的,您可以使用类来处理淡入淡出或图像,即图像的alpha属性的补间。我个人更喜欢使用TweenMax或TweenLite(greensock.com),但是有许多不同的类可以很好地处理这个问题。
您可以使用补间类的onComplete事件删除不再可见的图片。
你必须确保在开始淡入淡出例程之前加载下一个图像,因此我建议在上一个图像加载后立即调用下一个图像并在开始淡入淡出例程之前检查一个布尔值。
答案 1 :(得分:0)
尝试使用AS3 Tween类:http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/transitions/Tween.html
通过使用此功能,无论何时加载另一个图像,只需使用补间淡出现有图像和另一个补间淡入新图像。
以下是使用Tween类的示例:http://www.zedia.net/actionscript-3-tweens-tutorial/