PDA

Просмотр полной версии : Как обратиться к объекту который поймал событие


SkyBall
08.11.2013, 01:45
есть некие кнопки, к которым добавляются 2 события мыши:
button.addEventListener(MouseEvent.MOUSE_OVER, mouseOverMainMenuButton);
button.addEventListener(MouseEvent.MOUSE_OUT, mouseOutMainMenuButton);
обработчики меняют фон кнопки так все работает:
private function mouseOverMainMenuButton(e:Event):void {
button.graphics.beginFill(0x999999, 1);
button.graphics.lineStyle(5, 0x204266, 1);
button.graphics.drawRect(1, 1, 178, 54);
}

private function mouseOutMainMenuButton(e:Event):void {
button.graphics.beginFill(0xFFFFFF, 1);
button.graphics.lineStyle(5, 0x204266, 1);
button.graphics.drawRect(1, 1, 178, 54);
}

однако как я уже говорил кнопок не одна а несколько и когда я заменяю переменную button на this вот так:
private function mouseOverMainMenuButton(e:Event):void {
this.graphics.beginFill(0x999999, 1);
this.graphics.lineStyle(5, 0x204266, 1);
this.graphics.drawRect(1, 1, 178, 54);
}

private function mouseOutMainMenuButton(e:Event):void {
this.graphics.beginFill(0xFFFFFF, 1);
this.graphics.lineStyle(5, 0x204266, 1);
this.graphics.drawRect(1, 1, 178, 54);
}

то почему то он обращается не к объекту button и у меня рисуется новый квадрат с фоном в левом верхнем углу экрана.

что я не так сделал?

ZackMercury
08.11.2013, 01:57
Вместо this:

var thisButton = e.target as MovieClip;

Обьявляйте это вначале каждой функции и обращайтесь к этому элементу.

SkyBall
08.11.2013, 02:19
Вместо this:

var thisButton = e.target as MovieClip;

Обьявляйте это вначале каждой функции и обращайтесь к этому элементу.

не знаю по какой причине, но в этой строке кода немного измененной (MovieClip на Sprite заменил) у меня возникает какая то ошибка, т.е. после компиляции при наведении на кнопку флешка просто виснет, а FD пишет что в этой строке ошибка, в чем может быть дело?

Добавлено через 1 минуту
var thisButton = e.currentTarget as Sprite;
вот так вот заработало все ок :)

Добавлено через 1 минуту
спасибо за помощь

ZackMercury
08.11.2013, 03:38
не знаю по какой причине, но в этой строке кода немного измененной (MovieClip на Sprite заменил) у меня возникает какая то ошибка, т.е. после компиляции при наведении на кнопку флешка просто виснет, а FD пишет что в этой строке ошибка, в чем может быть дело?

Добавлено через 1 минуту
var thisButton = e.currentTarget as Sprite;
вот так вот заработало все ок :)

Добавлено через 1 минуту
спасибо за помощь
Да, прошу прощения, currentTarget.