补间数组中的过滤器未按预期发生

时间:2011-10-26 06:54:44

标签: flash actionscript-3 tween

我有这个MovieClips(btnArr)数组和GlowFilters数组(gloArr):

var btnArr:Array = new Array(aBtn, bBtn, cBtn);
var gloArr:Array = new Array();
var glow:GlowFilter = new GlowFilter(0x00aaff, 0,
                                     12, 12,
                                     5, 1,
                                     false, false);
for (var i = 0; i < btnArr.length; i++) {
        gloArr[btnArr[i].name] = glow;
        btnArr[i].filters = [gloArr[btnArr[i].name]];
}

然而,当我,稍后在我的代码中,Tween中的一个GlowFilters,它似乎将Tween应用于所有这些。

var btnTween:Tween = new Tween(gloArr[e.currentTarget.name], "alpha",
                               Strong.easeIn,
                               gloArr[e.currentTarget.name].alpha, 1, 1, true);
trace(gloArr.indexOf(btnTween.obj));

我有跟踪设置似乎表明,直到我声明Tween all按预期运行,但最后一条跟踪显示-1,当我检查数组中每个单独过滤器的值时,它们都在增加并一起减少。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

如果你理解正确,你只想补间其中一个按钮的光晕,对吗?

如果是这种情况,则每次将glow对象分配给btnArr[i].filters = [glow]时,都需要创建单独的{{1}}对象实例。在您的代码中,您只使用一个GlowFilter实例并为所有按钮共享它。