| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Flash > Динамическое меню и списки. |
| Автор: PROCESSOR 12.8.2005, 06:44 |
| Какой есть самый быстрый и короткий способ создать динамическое меню или вообще просто список ? через скрипт. - дан массив с пунктами меню ( или списка ) "1,2,3,4,5" - функция ( обьект ) должон создать меню из них т.е. при наведении и нажатии возвращается имя пункта . Причем как у вас организован возрат значения - вызов внешней функции или... Конечно это элементарно и легко, но интересно, может у кого-нибудь есть изощренный методы ( главное - короткость кода, а не скорость. ) |
| Автор: aksyos 12.8.2005, 11:06 |
| new XmlMenu("menu.xml", this); - Увсе. |
| Автор: PROCESSOR 12.8.2005, 15:10 |
| 6 кб. на меню это не серьёзно. Всякие вложенности не нужны. |
| Автор: aksyos 12.8.2005, 18:31 | ||
- Там в архиве fla с картинками для фона менюшки (так уж устроен flash, что их название и просто наличие актуальны для этой встроеной функции), а код - всего одна эта строка. Это самый короткий вариант для flash 2004! |
| Автор: PROCESSOR 13.8.2005, 04:18 | ||
| Ой ёёё. Да там 47 кб. а не 7. Вот мой вариант:
Выводиться любой список из массива, при наведении меняется цвет и при клике выдает текст. Разнообразить можно подо всё. Ксатати заметил, что почемуто в WITH нельзя вписать функции. Т.е. в в этом примере можно всё сделать с WITH (eval(z)), но функции не работают почемуто так. |
| Автор: AlDev 13.8.2005, 07:01 | ||
| дык ты eval не так понимаешь смысл. пример юзания eval:
|
| Автор: PROCESSOR 13.8.2005, 07:56 |
| Чо тут понимать. eval компилирует строку в процессе выполнения программы. Это если на низком уровне понимать. Уже пару лет им пользуюсь и в JS и в PHP , терь в AS. Обожаю этот штучку. В данном случае w=только что созданному обьекту. А как можно подругому прировнять ? w=createEmptyMovieClip (z,getNextHighestDepth()) вроде не работает , а жаль. Значит если не пользовать eval , то функции можно присваивать в WITH ? |
| Автор: AlDev 13.8.2005, 08:49 | ||||||||
дык конечно, ты указывай, куда пути идут:
тогда:
незнаю, попробуй. |
| Автор: PROCESSOR 13.8.2005, 14:06 |
| var w:MovieClip = this.createEmptyMovieClip(z.toString(),this.getNextHighestDepth()); уау !!! Это круто. А я то думаю, чо он не работает как в других языках. Всегда ведь созданный обьект возвращаеться. Гыыыыы. Причем, пример который я написал, оказывается тоже работает. w=createEmptyMovieClip (z,getNextHighestDepth()) Вот тока не пойму смысл обьявлять переменные, если они и так локальные в цикле из 5 строк . (z & w ) т.е. запутаться в них невозможно и сами они обьявляються. И с THIS заморочки - если же не указывать THIS , то по умолчанию оно само подставляется... но не всегда почемуто. { this.txt.textColor=0xFF0000 } -вот здесь если THIS не поставить, то небудет работать. |
| Автор: AlDev 14.8.2005, 05:01 |
| просто у тебя видимо все исходники маленькие и компиллишь ты всё под Flash. Если писать в fame, то требуется объявление всех переменных, если конечно к ним не обращаться как obj['var_name']. Ну и объявление их типов всегда не дурно включать, для читабельности и для отладки. this тоже писать обязательно |