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

Валиант 25.10.2007 15:44

Вложений: 1
Вот файл че я тут намудрил, сильно не смейте, но у меня чет вообще ниче не получается, с этими дублями и аттачами...
стройской
create_menu(mainTextArray.length,mainTextArray,0);
создается сам текст меню... в чем проблема, там у меня путается или взаимозамещается глубина клипов, и еще я опять таки не могу к ним обратится посредством onRollOver...
тока не спрашивайте почему без XML, я его не знаю, учить тож некогда, надо щас с одним чем нить разобратся плиз!

Валиант 26.10.2007 16:38

Цитата:

Сообщение от Molecula
dupl - просто переменная, а dupl._n - это будет ссылка на его так сказать номер. При ролОвере будет в трейсе высвечиваться, т.е. будем знать над каким элементом сроллОверили.

спасибо разобрался но что делать с масивом...
я делаю так
этот код у меня в теле цикла for
Код:

                       
my_array[mnu_i]=but.attachMovie("linkageName", "menus"+i, but.getNextHighestDepth());
                        my_array[mnu_i]._width=m_width;
                        my_array[mnu_i]._height=m_height;
                        my_array[mnu_i]._y=20*i;
                        my_array[mnu_i]._x=sub_i;
                        trace(my_array[mnu_i]);
                        trace(mnu_i);
                        mnu_i++

затем я пытаюсь обрабатывать события onRollOver

Код:

function Getobj(){
        my_array.onRollOver = __onRollOver
        my_array.onRollOut = __onRollOut

        function __onRollOver():Void {
//        this._n.alphaTo(50,0.5);
trace(my_array[mnu_i]);
        }
       
                function __onRollOut():Void {
        this.alphaTo(100,0.5);
        }

}

вот тут я и запутался, если делать опять же через for
Код:

for (i=0;i<total;i++){
my_array[i].onRollOver = __onRollOver
my_array[i].onRollOut = __onRollOut
}

то все работает, но чутко тормазить событие onRollOver как быть?

Kikasso 26.10.2007 17:37

Цитата:

Сообщение от Валиант
затем я пытаюсь обрабатывать события onRollOver
Код:

function Getobj(){
    my_array.onRollOver = __onRollOver
    my_array.onRollOut = __onRollOut
...


Какой еще ролловерр у масива??

Валиант 26.10.2007 18:18

Цитата:

Сообщение от Kikasso
Какой еще ролловерр у масива??

вот смотри здесб я присваиваю массиву аттач
Код:

my_array[mnu_i]=but.attachMovie("linkageName", "menus"+i, but.getNextHighestDepth());
соответственно я легко смогу вызывать роловер у элементов массива... но это долго и тормозит если чесно, я вот посто и хотел спросить есть ли вариант, который описал Molecula, для массива элементов? Там ведь в примере один указывается, а мне надо на все мувики! воть, понятно объяснил? я просто плохо объясняю извините:rolleyes:

Wolsh 26.10.2007 20:17

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

Валиант 26.10.2007 20:26

это я уже наглядно понял на своем примере... что можно вместо них применить...?

Wolsh 26.10.2007 23:19

Да ничего не надо применять, у вас же клипы с индексами в именах создаются, вот в их свойства и пишите чего надо.
А файл Ваш ни я, ни множество других людей посмотреть не сможет - во-первых, версия флэша не у всех такая модная, во-вторых классик Вы поленились в архив приложить

Валиант 27.10.2007 06:55

Вы же сами сказали что это тормоза вызывает? не пойму...
Код:

for (i=0;i<total;i++){
my_array[i].onRollOver = __onRollOver
my_array[i].onRollOut = __onRollOut
}

вот так я это делаю, но повторяюсь что почему то происходит приличная задержка при появлении какого-то эффекта, например курсор на меню надо подержать секунды 2 что бы он вспыхнул.

Kikasso 27.10.2007 12:45

Массивы тут не при чем - дело в обработчиках на наведение, скорее всего где-то в недрах таинственных функций tween и alphaTo. Что именно, неизвестно, так как lmc_tween.as вы в архив не включили.

Wolsh 27.10.2007 19:10

Массивы память жрут, Kikasso, ты же знаешь. Я недавно один проект свой переписал , убрав массивы ссылок на аттачащиеся клипы, скорость в три раза возросла.
В общем я не знаю толком что там у Вас происходит (из-за неполного исходника), но данный кусок сделал бы так
Код:

for (i=0;i<total;i++){
    attached = but.attachMovie("linkageName", "menus"+i, but.getNextHighestDepth());
    attached._width = m_width;
    attached._height = m_height;
    attached._y = 20*i;
    attached._x = sub_i;
    attached.onRollOver = __onRollOver
    attached.onRollOut = __onRollOut
    trace(i+"  "+attached._name);
}



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

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