AS2 从数组中隐藏对象

AS2 hide object from an array

关于 actionscript 2 的问题。 我有两个数组 - 一个用于按钮,另一个用于由按钮触发的影片剪辑:

var def:Array = [mc1, mc2, mc3];
var defBtn:Array = [btn1, btn2, btn3];

所以我得到了由相应按钮触发的影片剪辑 - 任何调用的影片剪辑都是可见的并播放其时间轴。

for(i=0; i<def.length; i++) {
    defBtn[i].iv = i;
    def[i].iv = i;
    defBtn[i].onRelease = function() {
        for( i=0; i<defBtn.length; i++ ) { 
            def[this.iv]._visible = true;
            def[this.iv].play();
        } 
    };          
};

但是任何调用的影片剪辑始终保持可见。 我希望数组中的所有影片剪辑都不可见,除了由相应按钮调用的影片剪辑。

不知道该怎么做,因为我需要使用 onRelease(而不是 onRollOut)让影片剪辑在动画片刻后消失。

请提供有关此 AS 代码的帮助! 谢谢

我已经很多年没有写 AS2 代码了,但我会试一试...

在每个按钮上,设置以下代码,将索引值更改为对应于数组中按钮的索引:

on(release){
    showClip(0);  // change value here as needed
}

按钮和动画片段存在于同一时间线上,您需要此代码:

var def:Array = [mc1, mc2, mc3];
var defBtn:Array = [btn1, btn2, btn3];

function showClip(clipToShow:Number) {

    // hide all clips
    for( i = 0; i < def.length; i++ ) {
        def[i]._visible = false;
        def[i].stop();
    }

    // only show clip after all clips have been hidden
    def[clipToShow]._visible = false;
    def[clipToShow].stop();

};

不幸的是,我没有办法在我的机器上编译 AS2 代码,因为我有 Adob​​e CC 2015,它不再支持 AS2;否则,我会为您测试这段代码。希望这对你有用。否则请告诉我。