Форум 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=166855)

Denis_Pryanikov 06.09.2011 11:30

Оптимизация кода
 
Всем привет!

Допустим, есть блок кода:
Код AS3:

Mc1.addEventListener(MouseEvent.ROLL_OVER, function(e:Event) {
        bLight.showBlur(Mc1);
 });
Mc2.addEventListener(MouseEvent.ROLL_OVER, function(e:Event) {
        bLight.showBlur(Mc2);
});
Mc3.addEventListener(MouseEvent.ROLL_OVER, function(e:Event) {
        bLight.showBlur(Mc3);
});
 
//etc...

Но клипов не 3, а...ну 20-30. Нельзя ли вешать слушателей для событий "марафета", подсветка кнопочек и тому подобное в более компактном виде? Может есть какая-то хитрая конструкция?...(уж больно код становится загроможденным)

dimarik 06.09.2011 11:43

Можно повесить на контейнер.

toFL 06.09.2011 11:45

Код AS3:

for (var i:uint = 0; i < 20; i++)
        this.getChildByName("Mc" + i).addEventListener(MouseEvent.ROLL_OVER, onOver);
 
function onOver (event:MouseEvent):void {
        bLight.showBlur(event.target);
}


DaFive 06.09.2011 12:04

toFL, только наверное ['mc'+i].

toFL 06.09.2011 12:06

Цитата:

Сообщение от DaFive (Сообщение 1028624)
toFL, только наверное ['mc'+i].

Там опечатка была, я предпочитаю так:
Код AS3:

this.getChildByName("Mc" + i)


dimarik 06.09.2011 12:18

Код AS3:

container.addEventListener(MouseEvent.ROLL_OVER, this.handler_over);
 
function handler_over(event:Event):void {
    this.bLight.showBlur(event.target as DisplayObject);
}



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

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