【问题标题】:AS2 Array of Multiple Buttons Sharing Same Actions As Well as Individual Actions多个按钮的 AS2 数组共享相同的操作以及单独的操作
【发布时间】:2015-01-11 00:32:55
【问题描述】:

我有 5 个按钮 mcs,它们都共享相同的翻转/滚动功能。但是,它们在 rollOver 上也都有特定的操作,例如 mc1 也会在 rollOver 上执行以下操作:

TweenLite.to(tips_mc.tip1, 1, { _alpha:100 });

如何将每个单独的调用添加到数组中的 rollOver 上的每个 mc?

我的数组如下:

var btnArray:Array = new Array(mc1, mc2, mc3, mc4, mc5);
for (i=0; i<btnArray.length; i++) {
///initial state///
btnArray[i].enabled = true;
btnArray[i].id = i;
btnArray[i].onRollOver = function() {
    this.gotoAndPlay("over");
};
btnArray[i].onRollOut = function() {
    this.gotoAndPlay("out");
};

}

非常感谢任何帮助!谢谢!

【问题讨论】:

    标签: arrays actionscript actionscript-2


    【解决方案1】:

    您可以在不同的functions 中编写您的操作,然后像这样调用它们:

    var functionsArray:Array /* of Function */ = [f1, f2, f3, f4, f5]; 
    var btnArray:Array /* of MovieClip */ = [mc1, mc2, mc3, mc4, mc5];
    var l:Number = btnArray.length;
    
    for (var i:Number = 0; i < l; i++)
    {
        btnArray[i].enabled = true;
        btnArray[i].id = i;
        btnArray[i].onRollOver = function()
        {
            functionsArray[this.id](); // you invoke your function here 
            this.gotoAndPlay("over");
        }
        btnArray[i].onRollOut = function()
        {
            this.gotoAndPlay("out");
        }
    }
    
    function f1():Void {trace("I'm the function 1");}
    function f2():Void {trace("I'm the function 2");}
    function f3():Void {trace("I'm the function 3");}
    function f4():Void {trace("I'm the function 4");}
    function f5():Void {trace("I'm the function 5");}
    

    【讨论】:

    • 谢谢 HelloFlash,我很抱歉,但我仍然不明白我将如何确保 f1 仅在 mc1 翻转时触发等...您介意解释一下吗?抱歉 - 以前从未使用过数组。谢谢!
    • user2163224 - 我不明白你的问题:你只需要应用代码。当您超过 mc1 时,将调用 f1。
    • user2163224 - 当您超过 mc1 的 btnArray[0] 时,调用 f1 的 functionsArray[0]。
    • 啊,非常感谢!现在我明白了!
    猜你喜欢
    • 2021-03-02
    • 2021-09-25
    • 2011-12-05
    • 1970-01-01
    • 2021-03-09
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多