Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Какой код лучше? (http://www.flasher.ru/forum/showthread.php?t=95730)

ARTur2 12.05.2007 19:49

Какой код лучше?
 
Есть некоторое количество "главных" клипов. В этих клипах есть подклипы, причём во всех главных разное количество подклипов. Задаётся "невидимость" этих клипов.У меня возник вопрос, какой код будет работать лучше, какой является более оптимизированым? И почему?
Первый код:
Код:

for (i=1; i<=73; i++) {
      administration_mc["adm"+i]._visible = false;
        }
for (i=1; i<=16; i++) {
      aks_mc["aks"+i]._visible = false;
        }
for (i=1; i<=24; i++) {
      bel_mc["bel"+i]._visible = false;
        }
for (i=1; i<=10; i++) {
      blo_mc["blo"+i]._visible = false;

            // и т.д.
        }

Второй код:
Код:

for (i=1; i<=73; i++) {
        administration_mc["adm"+i]._visible = false;
            aks_mc["aks"+i]._visible = false;
            bel_mc["bel"+i]._visible = false;
            blo_mc["blo"+i]._visible = false;
            // и т.д.
        }

Причём во втором случае, в цикле, задаём максимальное значение переменой i (отвечает за количество подклипов. Во всех главных клипах, подклипов разное количество)

etc 12.05.2007 19:51

Можно просто условие на существование клипа поставить и все.
А лучше организовать событийную модель, но это в данном случае геморрой.

ARTur2 12.05.2007 20:07

Ситуация следущая. Есть компонент ComboBox. После выбора определённого пункта из этого компонента, видимость подклипа, соответсвующего этому пункту должна значение false поменять на значение true. Делаю это так:
Код:

for (i=1; i<=16; i++) {
        aks_mc["aks"+i]._visible = false;
}
//       
var cbListener:Object = new Object();
cbListener.change = function(evt_obj:Object) {
        var item_obj:Object = _root.Serch.Search_window.streets_search.st_numb.numb2.selectedItem;
        for (i=1; i<=73; i++) {
                administration_mc["adm"+i]._visible = false;
        }
        for (i=1; i<=16; i++) {
                aks_mc["aks"+i]._visible = false;
        }
        for (i=1; i<=24; i++) {
                bel_mc["bel"+i]._visible = false;
        }
        for (i=1; i<=10; i++) {
                blo_mc["blo"+i]._visible = false;
        }
        bon_mc["bon"+1]._visible = false;
        for (i=1; i<=44; i++) {
                gag_mc["gag"+i]._visible = false;
        }
        for (i=1; i<=6; i++) {
                gli_mc["gli"+i]._visible = false;
        }
        for (i=1; i<=2; i++) {
                gog_mc["gog"+i]._visible = false;
        }
        for (i=1; i<=13; i++) {
                gur_mc["gur"+i]._visible = false;
        }
        for (i=1; i<=8; i++) {
                zol_mc["zol"+i]._visible = false;
        }
        for (i=1; i<=11; i++) {
                zuk_mc["zuk"+i]._visible = false;
        }
        for (i=1; i<=17; i++) {
                zvo_mc["zvo"+i]._visible = false;
        }
        for (i=1; i<=14; i++) {
                kal_mc["kal"+i]._visible = false;
        }
        for (i=1; i<=12; i++) {
                kom_mc["kom"+i]._visible = false;
        }
        aks_mc[item_obj.data]._visible = true;
};
//
_root.Serch.Search_window.streets_search.st_numb.numb2.addEventListener("change", cbListener);

Т.е. изначально должны все клипы существовать, но их не должно быть видно.

etc 12.05.2007 20:28

Ошибка в проектировании налицо.

ARTur2 12.05.2007 20:29

Указать её можно?

etc 12.05.2007 20:31

Я понятия не имею, что у тебя там за проект, но когда начинается писанина подобного кода с копипастом, то это автоматом означает то, что что-то сделано явно не так.

ARTur2 12.05.2007 20:36

Проект - это дипломная работа для института и делаю карту города. Первая работа (для меня серьёзная) на флеше. Главный клип- это улица, а подклип - это дом. Примерно так я хочу "находить" конкретный дом. Если вам не трудно, то подскажете другой алгорит, как это можно реализовать(хотя бы без кода). И если не смотреть на "писанину с копипастом", то какой всё же код лучше(из первого сообщения)?

etc 12.05.2007 21:09

В данном случае второй. На ошибку в работе можно закрыть глаза, это не AS3.

ARTur2 12.05.2007 21:50

Спасибо!

Snut 11.09.2007 20:22

А у меня в комбобоксе 240 строк, заполняются они будут из ХМЛ (пока еще не придумал как) и я вот думаю как сделать так чтобы при нажатии происходило перемещение к нужному объекту? Писать класс с твином?


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

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