我似乎在AS2中遇到了TweenLite问题。
我创建了一个我在主时间轴上调用的类。在课堂上我已经加载了图像,一旦它们被加载,我想在它们之间淡入淡出。当图像加载完成后,我在(在我的班级内)调用以下代码:
TweenLite.to(_root["loadedimg1"], 1, {_alpha: 100,
onComplete:doImageLoop, onCompleteParams:[1], onCompleteScope:this});
然后我有以下函数来执行淡入淡出循环:
public function doImageLoop(imageId:Number):Void
{
trace(imageId);
var newImageId:Number;
TweenLite.to(_root["loadedimg" + imageId], 1, {delay:2, _alpha: 0});
if ((imageId + 1) > queueCount) {
newImageId = 1;
} else {
newImageId = imageId + 1;
}
TweenLite.to(_root["loadedimg"+newImageId], 1, {delay:3, _alpha: 100,
onComplete:doImageLoop, onCompleteParams:[newImageId],
onCompleteScope:this, overwrite:0});
}
此功能永远不会被击中,但第一张图像会消失。
答案 0 :(得分:0)
你的代码与我完美搭配..我自己还在做一些小的AS2,所以我想我会试着回答你。我在舞台上放了三张picture-mc:loadedimg1,loadedimg2和loadedimg3。然后我创建了一个空的MovieClip,其中一个类连接到它,名为'test'。该类包含以下代码:
import gs.TweenLite;
class test extends MovieClip {
private var queueCount : Number = 3;
function test() {
TweenLite.to(_root["loadedimg1"],1,{_alpha:100, onComplete:doImageLoop, onCompleteParams:[1], onCompleteScope:this});
}
function doImageLoop(imageId:Number):Void {
trace(imageId);
var newImageId:Number;
TweenLite.to(_root["loadedimg"+imageId],1,{delay:2, _alpha:0});
if ((imageId+1)>queueCount) {
newImageId = 1;
} else {
newImageId = imageId+1;
}
TweenLite.to(_root["loadedimg"+newImageId],1,{delay:3, _alpha:100, onComplete:doImageLoop, onCompleteParams:[newImageId], onCompleteScope:this, overwrite:0});
}
};
也许您可以给我们一个更详细的示例,说明您的课程的排列方式以及您的应用程序的编码深度。尝试不丢失范围始终是AS2的主要优先事项。 :(
希望我能稍后帮助......