Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как обратиться к объекту который поймал событие (http://www.flasher.ru/forum/showthread.php?t=204656)

SkyBall 08.11.2013 01:45

Как обратиться к объекту который поймал событие
 
есть некие кнопки, к которым добавляются 2 события мыши:
Код AS3:

        button.addEventListener(MouseEvent.MOUSE_OVER, mouseOverMainMenuButton);
button.addEventListener(MouseEvent.MOUSE_OUT, mouseOutMainMenuButton);

обработчики меняют фон кнопки так все работает:
Код AS3:

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 вот так:
Код AS3:

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:
Код AS3:

var thisButton = e.target as MovieClip;

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

SkyBall 08.11.2013 02:19

Цитата:

Сообщение от SuriTheAngel (Сообщение 1151609)
Вместо this:
Код AS3:

var thisButton = e.target as MovieClip;

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

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

Добавлено через 1 минуту
Код AS3:

var thisButton = e.currentTarget as Sprite;

вот так вот заработало все ок :)

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

ZackMercury 08.11.2013 03:38

Цитата:

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

Добавлено через 1 минуту
Код AS3:

var thisButton = e.currentTarget as Sprite;

вот так вот заработало все ок :)

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

Да, прошу прощения, currentTarget.


Часовой пояс GMT +4, время: 05:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.