Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.05.2010, 18:26
proxiServer вне форума Посмотреть профиль Отправить личное сообщение для proxiServer Найти все сообщения от proxiServer
  № 1  
Ответить с цитированием
proxiServer
 
Аватар для proxiServer

Регистрация: Jun 2006
Сообщений: 400
По умолчанию Делаю меню. Не представляю как назначить команды.

Делаю двухуровневое меню. Меню генерируется на основе данных в двумерном массиве. Пункты меню имеют событие "нажали". Я думаю и не могу сообразить, как заставить при нажатии на пункты меню вызывать функцию или метод и можно ли передать им параметры?

Меню типа "файл правка вид". Программно создал массив. Меню сгенерилось. А как мне теперь заставить по этому событию запускать windows.show("справка"), а по другому функцию foo()?

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

благодарен.

Старый 12.05.2010, 18:42
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Просто диспатчите клик.
В обработчике проверяете evt.target - какое у него свойство "commandName"
Далее просто switch, который выполняет что-то еще в зависимости от commandName

Можно сделать несколько своих событий. Тогда можно разнести этот огромный switch на несколько маленьких внутри обработчиков каждого из видов событий. Событию можно сделать свойство commandName, а тип события будет определять тип обработчика
__________________
...вселенская грусть

Старый 12.05.2010, 19:41
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 3  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
А еще можно в xml или с чего у Вас там генерится меню прописать названия функций а потом вызывать их с getDefinitionByName.

Но можно и гибридное меню (как я обычно делаю).

Код AS3:
switch(commandName){
case "kuriza":
        kuriza();
break;
case "zorro":
        zorro();
break;
default:
        var f=getDifinitionByName(commandName);
        f()
break;
}

Старый 13.05.2010, 02:23
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 4  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Можно сделать несколько своих событий. Тогда можно разнести этот огромный switch на несколько маленьких внутри обработчиков каждого из видов событий. Событию можно сделать свойство commandName, а тип события будет определять тип обработчика
Можно и без switch, добавить к узлу вашего двумерного массива ссылку на функцию которую нужно вызвать и все!
Можно вместо функции можно сохранить в узле объект-команду, которую узел дернет при клике по нему.

Недостатки по сравнению с сохранением имени функции и вызовом по getDifinitionByName - ну разве что из xml-ки не сгенеришь, ну и при создании меню все комманды/методы должны существовать
Достоинтва - не опечатаешься в имени функции


Последний раз редактировалось expl; 13.05.2010 в 02:28.
Старый 13.05.2010, 10:53
proxiServer вне форума Посмотреть профиль Отправить личное сообщение для proxiServer Найти все сообщения от proxiServer
  № 5  
Ответить с цитированием
proxiServer
 
Аватар для proxiServer

Регистрация: Jun 2006
Сообщений: 400
А есть что-нибудь на подобии:
Код AS3:
        function callFunction (functionName:String,functionArgs:Array):*;
Что бы к фунции обратиться и параметры передать сразу. Не то что бы мне это необходимо) Скорее из любопытства.

Старый 13.05.2010, 11:00
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 6  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
есть
Код AS3:
Function.apply( thisArg:*, argArray:* ):*
Function.call( thisArg:*, ...args ):*

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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