AS3 - 使用forEach调用函数

时间:2014-10-15 23:13:25

标签: arrays actionscript-3 function alpha

Flash在“输出”面板中抛出此错误: ReferenceError:错误#1069:在String上找不到属性alpha,并且没有默认值。

有问题的代码:

var mcs:Array = new Array();
mcs.push({name:"mc_1"});
mcs.push({name:"mc_2"});
mcs.push({name:"mc_3"});
mcs.push({name:"mc_4"});

mcs.forEach(fade);

function fade(element:*, index:int, arr:Array):void 
{
    fl_FadeOut(element.name);
}

function fl_FadeOut(element:Object)
{
    element.alpha -= 0.05;
    if(element.alpha <= 0)
    {
        element.removeEventListener(Event.ENTER_FRAME, fl_FadeOut);
    }
}

我只是希望淡出mc_1然后淡入mc_2,保持一秒然后淡出。 mc_3淡入......等等 但我坚持这个错误信息。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

您将element.name传递给fl_FadeOut,这是一个字符串。

我怀疑你想要做的事情是:

function fade(element:*, index:int, arr:Array):void 
{
    fl_FadeOut(getChildByName(element.name));
    //         ^^^^^^^^^^^^^^
}

使用getChildByName()以名称引用DisplayObject的位置。