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

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

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

Регистрация: Sep 2009
Сообщений: 32
По умолчанию как подключить mxml в виде всплывающего окна?

есть newtitlewindow.mxml
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" width="200" height="200" close="title_close();">
	<mx:Script>
		<![CDATA[
			 import mx.managers.PopUpManager;
 
			 public function title_close():void{
			 	PopUpManager.removePopUp(this);
			 }
 
		]]>
	</mx:Script>
	<mx:Label text="This is the Modal Window" width="162"/>
 
</mx:TitleWindow>
как его подключить к основному проекту в виде всплывающего окна по нажатию кнопки?

блин и опятьже сам нашел ответ на свой вопрос, как только создам тему так нахожу решение, что за чудеса.

Вобщем есть другой вопрос, как обновлять датагрид после внесения изменений? суть такая, из основного проекста кликаю по кнопке открывается всплывающее окно, в нем добавляю данные и кликаю кнопку добаваить(это я реализовал), надо чтобы после этого действия обновлялся датагрид

еще возник вопросик, как реализовать такое: если значение поля в датагрид равно другому заданному то разрешить редактирование поля, возможно ли такое?

и еще вопросик как из одного мхмл передать значения в другой мхмл


Последний раз редактировалось buket; 11.01.2010 в 12:44.
Старый 11.01.2010, 11:43
spacecadet вне форума Посмотреть профиль Отправить личное сообщение для spacecadet Найти все сообщения от spacecadet
  № 2  
Ответить с цитированием
spacecadet

Регистрация: Dec 2009
Сообщений: 41
buket, расскажи, пожалуйста, как решил проблему с подключением всплывающего title window! У меня возникла такая же проблема.

Добавлено через 5 минут
А насчет обновления датагриды - думаю все зависит от того, откуда она у тебя питается. У меня в проекте похожая ситуация, работаю с базой данных MS SQL, после добавления записи в БД, просто еще раз вызываю функцию заполнения датагриды.

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

Регистрация: Sep 2009
Сообщений: 32
окно которое всплывает newpost.mxml
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" width="450" height="500" close="title_close();" horizontalAlign="center">
	<mx:Script>
		<![CDATA[
			 import mx.managers.PopUpManager;
			  import mx.events.CloseEvent;
 
			 public function title_close():void{
			 	PopUpManager.removePopUp(this);
			 }
 
		]]>
	</mx:Script>
 
 
</mx:TitleWindow>
а вот так подключаем в основной проект его
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="800">
<mx:Script>
        <![CDATA[
            import mx.managers.PopUpManager;
            import mx.containers.TitleWindow;
            import mx.controls.Label;
 
        	import mx.events.ListEvent;
        	import mx.controls.Alert;
          public function addpost():void{
            	var newTitleWindow:newpost = new newpost();
            	newTitleWindow.showCloseButton = true;
            	PopUpManager.addPopUp(newTitleWindow,this,true);
            	PopUpManager.centerPopUp(newTitleWindow); 
            }                     
 
       ]]>
    </mx:Script>
   <mx:Button label="Button" click="addpost()"/> //пример кнопки вызывающей всплывающее окно	
 </mx:Application>

Старый 11.01.2010, 18:57
spacecadet вне форума Посмотреть профиль Отправить личное сообщение для spacecadet Найти все сообщения от spacecadet
  № 4  
Ответить с цитированием
spacecadet

Регистрация: Dec 2009
Сообщений: 41
спасибо за прекрасный примерчик! разобрался. Насчет передачи данных из мхмл в мхмл - поддерживаю, вопрос актуальный, может кто нибудь подскажет решение?

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

Регистрация: Oct 2009
Сообщений: 34
Отправить сообщение для Кип с помощью ICQ
Цитата:
Сообщение от spacecadet Посмотреть сообщение
спасибо за прекрасный примерчик! разобрался. Насчет передачи данных из мхмл в мхмл - поддерживаю, вопрос актуальный, может кто нибудь подскажет решение?
Если я правильно понял вопрос...

Предположим, надо передать массив из основного mxml в newTitleWindow.
В newpost.mxml создаёте public var myArray:Array.
В функции addpost() добавляете newTitleWindow.myArray = someArray;

Или, наверное, можно ловить событие show в newpost.mxml и получать нужные данные через parent.*

В справке по PopUpManager'у это есть, и ещё много всего полезного

Старый 12.01.2010, 07:03
buket вне форума Посмотреть профиль Отправить личное сообщение для buket Найти все сообщения от buket
  № 6  
Ответить с цитированием
buket
 
Аватар для buket

Регистрация: Sep 2009
Сообщений: 32
можно поподробнее, конкретно инересует передача данных из датагрид в другой мхмл(всплывающее окно)


Последний раз редактировалось buket; 12.01.2010 в 07:17.
Старый 12.01.2010, 11:42
spacecadet вне форума Посмотреть профиль Отправить личное сообщение для spacecadet Найти все сообщения от spacecadet
  № 7  
Ответить с цитированием
spacecadet

Регистрация: Dec 2009
Сообщений: 41
Цитата:
Сообщение от Кип Посмотреть сообщение
Если я правильно понял вопрос...

Предположим, надо передать массив из основного mxml в newTitleWindow.
В newpost.mxml создаёте public var myArray:Array.
В функции addpost() добавляете newTitleWindow.myArray = someArray;
public var не получится увидеть из другог мхмл. А если public static var - то все прекрасно видно.

Старый 12.01.2010, 17:33
buket вне форума Посмотреть профиль Отправить личное сообщение для buket Найти все сообщения от buket
  № 8  
Ответить с цитированием
buket
 
Аватар для buket

Регистрация: Sep 2009
Сообщений: 32
spacecadet а подробнее

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

Регистрация: Oct 2009
Сообщений: 34
Отправить сообщение для Кип с помощью ICQ
Цитата:
public var не получится увидеть из другог мхмл. А если public static var - то все прекрасно видно.
Получится. Точно так же, как получается управлять свойствами оригинальных компонентов.

buket,
Вот пример из моей первой программы.
Функция из основного mxml, создающая PopUp:
Код AS3:
//	показать список клиентов	
	public function btnBrowseClientsClick():void
	{
		var clientsPopup:clientsTitleWindow;
		clientsPopup = clientsTitleWindow(PopUpManager.createPopUp(this, clientsTitleWindow, true));				
		clientsPopup.addEventListener("mouseDownOutside", function():void { PopUpManager.removePopUp(clientsPopup); });
		clientsPopup.myArray = clients; //Передаём список клиентов в PopUp. clients - ArrayCollection
		clientsPopup.targetComponent = сlientsList; //Передаём ссылку на компонент, куда будут помещаться возвращаемые данные. clientsList - ComboBox
	}

Мой кастомный компонент:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="600" height="292" title="Список клиентов">
	<mx:Script>
		<![CDATA[
		import mx.managers.PopUpManager;
		import mx.collections.ArrayCollection;
		import mx.events.ListEvent;
 
		[Bindable]
		public var myArray:ArrayCollection;
 
		public var targetComponent:AdvancedAutoComplete;
 
		public function onCancelClick():void
		{
			PopUpManager.removePopUp(this);	
		}
 
		public function myArrayFilter(item:Object):Boolean
		{
			var temp:String = item["Name"];
			var ret:Boolean;
			if (temp.search(filter.text) != -1) 
				return true;
			return false;												
		}
 
		private function onItemDoubleClick(event:ListEvent):void
		{
			targetComponent.selectedItem = myArray[event.rowIndex];
			onCancelClick();
		}
 
		]]>
	</mx:Script>
	<mx:DataGrid id="gridClients" width="100%" height="200" x="0" y="0" dataProvider="{ myArray }" doubleClickEnabled="true" itemDoubleClick="onItemDoubleClick(event)">
		<mx:columns>
			<mx:DataGridColumn headerText="Имя клиента" dataField="Name" width="150"/>
			<mx:DataGridColumn headerText="Долг" dataField="Debt" width="60"/>
			<mx:DataGridColumn headerText="Лимит" dataField="Limit" width="60"/>		
			<mx:DataGridColumn headerText="Комментарий" dataField="Comment" width="310"/>
		</mx:columns>
	</mx:DataGrid>
	<mx:TextInput id="filter" x="10" y="208" change="myArray.filterFunction = myArrayFilter; myArray.refresh()"/>
	<mx:Button id="btnCancel" x="485" y="208" label="Закрыть" click="onCancelClick()"/>
</mx:TitleWindow>
Замените мой clients в первой части на dataProvider своего DataGrid'a

Старый 13.01.2010, 08:45
buket вне форума Посмотреть профиль Отправить личное сообщение для buket Найти все сообщения от buket
  № 10  
Ответить с цитированием
buket
 
Аватар для buket

Регистрация: Sep 2009
Сообщений: 32
чтото не получается у меня, ругается
1046: Тип не найден или не является константой времени компиляции: clientsTitleWindow.
1120: Обращение несуществующего свойства clientsTitleWindow.

все разобрался, спасибо


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

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

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


 


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


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