Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое меню и списки. вывод списков и меню с помощью AS 
:(
    Опции темы
PROCESSOR
Дата 12.8.2005, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 25.5.2005

Репутация: нет
Всего: нет



Какой есть самый быстрый и короткий способ создать динамическое меню или вообще просто список ? через скрипт.

- дан массив с пунктами меню ( или списка ) "1,2,3,4,5"
- функция ( обьект ) должон создать меню из них т.е. при наведении и нажатии возвращается имя пункта . Причем как у вас организован возрат значения - вызов внешней функции или...

Конечно это элементарно и легко, но интересно, может у кого-нибудь есть изощренный методы ( главное - короткость кода, а не скорость. )


PM MAIL   Вверх
aksyos
Дата 12.8.2005, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 3.6.2005
Где: Москва

Репутация: нет
Всего: нет



new XmlMenu("menu.xml", this);
- Увсе.

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  xmlmenu.zip 6,51 Kb
PM MAIL ICQ   Вверх
PROCESSOR
Дата 12.8.2005, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 25.5.2005

Репутация: нет
Всего: нет



6 кб. на меню это не серьёзно. Всякие вложенности не нужны.
PM MAIL   Вверх
aksyos
Дата 12.8.2005, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 3.6.2005
Где: Москва

Репутация: нет
Всего: нет



Цитата(PROCESSOR @ 12.8.2005, 15:10)
6 кб. на меню это не серьёзно.  Всякие вложенности не нужны.

- Там в архиве fla с картинками для фона менюшки (так уж устроен flash, что их название и просто наличие актуальны для этой встроеной функции), а код - всего одна эта строка. Это самый короткий вариант для flash 2004!

Это сообщение отредактировал(а) aksyos - 12.8.2005, 18:34
PM MAIL ICQ   Вверх
PROCESSOR
Дата 13.8.2005, 04:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 25.5.2005

Репутация: нет
Всего: нет



Ой ёёё. Да там 47 кб. а не 7. smile

Вот мой вариант:

Код

q=new Array ("Page 1","Page 2","Page 3")

for (z in q) {
    createEmptyMovieClip (z,getNextHighestDepth())
    w=eval(z)
    w.createTextField("txt", 1, 0,z*18, 100, 18)
    w.txt.text=q[z];
    w.onPress=function () { trace (this.txt.text) }
    w.onRollOver=function () { this.txt.textColor=0xFF0000 }
    w.onRollOut=function () { this.txt.textColor=0x00000 }    
}


Выводиться любой список из массива, при наведении меняется цвет и при клике выдает текст.
Разнообразить можно подо всё.

Ксатати заметил, что почемуто в WITH нельзя вписать функции. Т.е. в в этом примере можно всё сделать с WITH (eval(z)), но функции не работают почемуто так.

Это сообщение отредактировал(а) PROCESSOR - 13.8.2005, 05:16
PM MAIL   Вверх
AlDev
Дата 13.8.2005, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



дык ты eval не так понимаешь смысл.
пример юзания eval:
Код

var str:String = 'Object';
var f:Function = eval(str);
var obj = new f();
trace (typeof(obj));

PM MAIL WWW ICQ YIM MSN   Вверх
PROCESSOR
Дата 13.8.2005, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 25.5.2005

Репутация: нет
Всего: нет



Чо тут понимать. eval компилирует строку в процессе выполнения программы. Это если на низком уровне понимать.

Уже пару лет им пользуюсь и в JS и в PHP , терь в AS. Обожаю этот штучку.

В данном случае w=только что созданному обьекту. А как можно подругому прировнять ?
w=createEmptyMovieClip (z,getNextHighestDepth()) вроде не работает , а жаль.

Значит если не пользовать eval , то функции можно присваивать в WITH ?
PM MAIL   Вверх
AlDev
Дата 13.8.2005, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



Цитата(PROCESSOR @ 13.8.2005, 12:56)
w=createEmptyMovieClip (z,getNextHighestDepth()) вроде не работает , а жаль.

дык конечно, ты указывай, куда пути идут:
Код

var w:MovieClip = this.createEmptyMovieClip(z.toString(),this.getNextHighestDepth());


тогда:
Код

var q:Array = new Array ("Page 1","Page 2","Page 3")
var z:Number;
var w:MovieClip;
for (z=0;z<q.length;z++) 
{
    w = this.createEmptyMovieClip (z.toString(),this.getNextHighestDepth());
    w.createTextField("txt", 1, 0,z*18, 100, 18)
    w.txt.text=q[z];
    w.onPress=function () { trace (this.txt.text) }
    w.onRollOver=function () { this.txt.textColor=0xFF0000 }
    w.onRollOut=function () { this.txt.textColor=0x00000 }    
}


Цитата(PROCESSOR @ 13.8.2005, 12:56)
то функции можно присваивать в WITH

незнаю, попробуй.

PM MAIL WWW ICQ YIM MSN   Вверх
PROCESSOR
Дата 13.8.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 25.5.2005

Репутация: нет
Всего: нет



var w:MovieClip = this.createEmptyMovieClip(z.toString(),this.getNextHighestDepth());

уау !!! Это круто. А я то думаю, чо он не работает как в других языках. Всегда ведь созданный обьект возвращаеться. Гыыыыы. Причем, пример который я написал, оказывается тоже работает. w=createEmptyMovieClip (z,getNextHighestDepth())

Вот тока не пойму смысл обьявлять переменные, если они и так локальные в цикле из 5 строк . (z & w ) т.е. запутаться в них невозможно и сами они обьявляються.

И с THIS заморочки - если же не указывать THIS , то по умолчанию оно само подставляется... но не всегда почемуто. { this.txt.textColor=0xFF0000 } -вот здесь если THIS не поставить, то небудет работать.
PM MAIL   Вверх
AlDev
Дата 14.8.2005, 05:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



просто у тебя видимо все исходники маленькие и компиллишь ты всё под Flash.
Если писать в fame, то требуется объявление всех переменных, если конечно к ним не обращаться как obj['var_name']. Ну и объявление их типов всегда не дурно включать, для читабельности и для отладки.
this тоже писать обязательно smile иначе он пытается всё понять, как локальную переменную, а не переменную у объекта класса.
PM MAIL WWW ICQ YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы про программирование на ActionScript 1,2 (Flash 8 и более ранние версии) пишите в форуме ActionScript 1,2
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Flash | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.