Для объединения массива требуется два целых числа, а this
не будет целым числом.
Даже если бы this
было целым числом, о котором вы думали, оно бы перебирало и удаляло кнопку в каждом цикле, оставляя вас с пустым массивом. Я вижу, что вы пытались сделать - выделить массив без соответствующей кнопки для каждого обработчика.
Простой способ с вашим кодом - запустить проверку в цикле for вашего обработчика onBtn, чтобы увидеть, соответствует ли текущий элемент массива кнопке прокрутки (e.currentTarget). Если это не так, установите альфа.
Вам не нужно склеивать массив.
import flash.events.MouseEvent;
stop();
var arrayButtons:Array = [button1, button2, button3];
for each (var btn in arrayButtons) {
btn.addEventListener(MouseEvent.MOUSE_OVER, onBtn);
// remove the splice
// arrayButtons.splice[this, 1];
}
function onBtn(e:MouseEvent): void {
for (var i:Number = 0; i < arrayButtons.length; i++) {
// if the current array element is not the current button, set alpha
if(arrayButtons[i].name != e.currentTarget.name ){
arrayButtons[i].alpha = 0.2;
}
}
}
(моды: я не смог разобраться с подсветкой кода as3 - раньше вы могли выделять синтаксис as3, но я давно пытался в SO?)