我在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});
}这个函数永远不会被点击,但第一个图像会淡出。
发布于 2009-06-30 19:21:16
你的代码很适合我..我自己还在做一些次要的AS2的事情,所以我想我应该试着回答你。我已经在舞台上放了三个图片-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中,尽量不丢失作用域始终是首要任务。:(
希望稍后我能帮上忙。
https://stackoverflow.com/questions/1063868
复制相似问题