将长代码转换为更短的循环ActionScript 2

时间:2012-03-15 04:55:49

标签: flash for-loop actionscript-2

我正在尝试将下面的较长代码转换为较短的代码,我的代码是针对Actionscript 2,而我使用as2调试器,trace(),它获取循环,但它不会识别是一个movieclip(button1 - button3是我指定的3个不同的电影剪辑)。

来自这个

button1.onRollOver = function(){
m_bt1.scaleTo(70, 1, "easeoutelastic");
};

button1.onRollOut = function(){
m_bt1.scaleTo(100, 1, "easeoutelastic");
};

button2.onRollOver = function(){
m_bt2.scaleTo(70, 1, "easeoutelastic");
};

button2.onRollOut = function(){
m_bt2.scaleTo(100, 1, "easeoutelastic");
};

button3.onRollOver = function(){
    m_bt3.scaleTo(70, 1, "easeoutelastic");
};

button3.onRollOut = function(){
    m_bt3.scaleTo(100, 1, "easeoutelastic");
};

到此:

var $i;
for($i=1; $i <4; $i++){
    var main_bt = 'button'+$i;
    _root.main_bt.onRollOut = function(){
        this.main_bt.scaleTo(70, 1, "easeoutelastic");
    }
}

1 个答案:

答案 0 :(得分:0)

首先尝试将按钮放在数组中,然后迭代数组:

var buttons = [button1, button2, button3];
for(var index=0; index < buttons.length; index++){ 
    var main_bt = buttons[index]; 
    main_bt.onRollOut = function(){ 
        this.main_bt.scaleTo(70, 1, "easeoutelastic"); 
    } 
} 

或者也可以继续工作:var button = _root['button'+$i]