4

Пример скорее для начинающих, чем для опытных флешеров…

Например, если ставятся слушатели на разные объекты, а объектов довольно много, то вместо этого:

btn1.addEventListener(MouseEvent.CLICK , Kraslich);
btn2.addEventListener(MouseEvent.CLICK , Orglich);
btn3.addEventListener(MouseEvent.CLICK , Zellich);
 
function Kraslich(e:MouseEvent):void
{
kras_color = true ;
mess.text = "Ловите красных!!!";
}
 
function Orglich(e:MouseEvent):void
{
oran_color = true ;
mess.text = "Ловите оранжевых!!!";
}
 
function Zellich(e:MouseEvent):void
{
zel_color = true ;
mess.text = "Ловите зеленых!!!";
}

Можно писать так:

btn1.addEventListener(MouseEvent.CLICK , MouseClickHandler);
btn2.addEventListener(MouseEvent.CLICK , MouseClickHandler);
btn3.addEventListener(MouseEvent.CLICK , MouseClickHandler);
var txt:String;
function MouseClickHandler(e:MouseEvent):void
{
    switch (e.target as MovieClip)
    {
        case btn1:
        kras_color = true ;
        txt = "Ловите красных!!!";
        break;
        case btn2:
        oran_color = true ;
        txt = "Ловите оранжевых!!!";
        break;
        case btn3:
        zel_color = true ;
        txt = "Ловите зеленых!!!";
        break;
 
        default:
        kras_color = true ;
        txt = "Ловите красных!!!";
        break;
    }
    mess.text = txt;
}

Путем небольшого теста, выяснилось, что оба варианта работают примерно одинаково, первый даже немного быстрее, но чтобы проще было найти функцию-обработчик и, чтобы код выглядел более структурировано лучше использовать второй вариант. Спасибо Дамиру…
P.s. 1 код писал не я)


Отзывов (4) на «Немного оптимизации, если ее так можно назвать.»

  1. samoiloff

    А в чем оптимизация то?

  2. byflasher

    Просмотрел еще раз код, немного подумал) и, в правду, получается, что оптимизации толком нет, наоборот каждый раз будет проверятся какая была нажата кнопка, а в первом случае никаких проверок нет, сразу выполняется соответствующая функция… Пост пока удалять не буду, но отредактирую в скором времени.

    Спасибо, что написал коммент)

  3. samoilocf

    такой стиль не только менее производителен, но и ухудшает читабельность кода. необходимо в 2 раза больше усилий чтобы найти обработчик

  4. byflasher

    в общем подправил, а искать можно через поиск)))


Трекбеки/Пинги


Ваш отзыв