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

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

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

Регистрация: Apr 2009
Сообщений: 56
По умолчанию Как открыть окошко?

Я пишу в акшен скрипт создание пользовательского интерфейса. И Мне нужно по нажатии кнопки открыть панель так, чтобы она стала активной и пока её не закроешь всё остальное не работает.

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

Код AS3:
private static function buildPaymentsTab(n:Number):Canvas{
 
			var add : Button = new Button();
			add.x=200; add.y=200;
 
			add.addEventListener(MouseEvent.CLICK, addHandler);
 
			function addHandler(eventObj:MouseEvent):void {
                               ЗДЕСЬ ХОЧУ СОЗДАТЬ ОКОШКО 
                                buildNewPayment();
			}
 
			tab.addChild(add);
 
 
			return tab;		
		}

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

Регистрация: Oct 2009
Сообщений: 34
Отправить сообщение для Кип с помощью ICQ
Для начала, создайте новый mxml-компонент для своего окошка, выбрав базовым классом, например, titleWindow.
Для создания окошка, используйте PopUpManager.createPopUp()

Например так:
Код AS3:
var clientsPopup:clientsTitleWindow;
clientsPopup = clientsTitleWindow(PopUpManager.createPopUp(this, clientsTitleWindow, true));
Первый аргумент - родительский DisplayObject. Второй - класс создаваемого окошка.
Третий - является ли окошко модальным: значение true будет означать, что объекты, находящиеся под окошком, не будут отвечать на пользовательские действия. Другими словами,
Цитата:
пока её не закроешь всё остальное не работает.
Важно понимать, что после создания окошка, код в родительском компоненте продолжает выполняться.

Старый 06.01.2010, 08:48
GAmoVeR вне форума Посмотреть профиль Отправить личное сообщение для GAmoVeR Найти все сообщения от GAmoVeR
  № 3  
Ответить с цитированием
GAmoVeR

Регистрация: Dec 2009
Сообщений: 11
Вопрос из области рядом
Цитата:
Сообщение от micromacro Посмотреть сообщение

Код AS3:
			add.addEventListener(MouseEvent.CLICK, addHandler);
 
			function addHandler(eventObj:MouseEvent):void {
                               ЗДЕСЬ ХОЧУ СОЗДАТЬ ОКОШКО 
                                buildNewPayment();
			}
Вот таким образом для динамически созданной кнопки мы создали событие CLICK, по которому вызывается функция addHandler. А как в addHandler передать какие либо пользовательские параметры? Ну например, строчкой выше определился массив - и нужно чтобы функция addHandler этот массив использовала.

Старый 06.01.2010, 15:22
HotIceCream вне форума Посмотреть профиль Отправить личное сообщение для HotIceCream Найти все сообщения от HotIceCream
  № 4  
Ответить с цитированием
HotIceCream
 
Аватар для HotIceCream

Регистрация: Oct 2009
Сообщений: 112
Записей в блоге: 1
сделай их глобальными - объяви в теле класса, а не в какой либо функции

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

Регистрация: Oct 2009
Сообщений: 34
Отправить сообщение для Кип с помощью ICQ
Цитата:
Сообщение от GAmoVeR Посмотреть сообщение
А как в addHandler передать какие либо пользовательские параметры?
Напрямую, к сожалению, нельзя.
Нужно создать свой класс события, наследуемый от класса Event (или MouseEvent для событий мыши), добавить в него нужное свойство, и по клику, диспатчить это событие таким образом:
Код AS3:
myButton.dispatchEvent(new MyCustomEvent(MY_EVENT_TYPE, myArray, ...));
В гугле по запросу *pass multiple arguments addEventListener actionscript3* можно найти довольно много информации
Например, вот:
http://www.darronschall.com/weblog/2...ers-in-as3.cfm

http://www.learningactionscript3.com...s-with-events/
А вот здесь рассказывается про альтернативный вариант, который заключается в использовании в качестве приёмника события анонимной функции, которая выполняет всего одно действие - вызывает реальный обработчик событие.
Код AS3:
add.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void { addHandler(event, "Клик!") }


Последний раз редактировалось Кип; 06.01.2010 в 15:57.
Старый 06.01.2010, 17:41
GAmoVeR вне форума Посмотреть профиль Отправить личное сообщение для GAmoVeR Найти все сообщения от GAmoVeR
  № 6  
Ответить с цитированием
GAmoVeR

Регистрация: Dec 2009
Сообщений: 11
Вот оно как оказывается

Спасибо, учу матчасть дальше

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

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

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


 


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


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