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

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

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

Регистрация: Oct 2007
Сообщений: 66
По умолчанию помогите Drag & Drop

Как узнать что упало при драгндропе и если это чтото не подходит запретить перемещение этого в грид? желательн ос примерчиком!

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

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Искать в хелпе по словам : dragEnter, dragExit, dragComplete,dragDrop - там вам и примеры будут.

Старый 20.10.2007, 20:18
Захаров вне форума Посмотреть профиль Отправить личное сообщение для Захаров Найти все сообщения от Захаров
  № 3  
Ответить с цитированием
Захаров

Регистрация: Oct 2007
Сообщений: 66
искал более того нашел но там они используют в качестве источника данных Array а у меня XML
var items:Array = event.dragSource.dataForFormat("items") as Array;

что мне надо указать в dataForFormat что бы получить XML узел с атрибутами?

Старый 20.10.2007, 20:58
Захаров вне форума Посмотреть профиль Отправить личное сообщение для Захаров Найти все сообщения от Захаров
  № 4  
Ответить с цитированием
Захаров

Регистрация: Oct 2007
Сообщений: 66
разобрался посмотрел что в dragSource.formats
получил массив того чего тащу(items[0]) привел к XML

Старый 04.12.2007, 17:46
Bruiser вне форума Посмотреть профиль Отправить личное сообщение для Bruiser Найти все сообщения от Bruiser
  № 5  
Ответить с цитированием
Bruiser

Регистрация: Sep 2007
Сообщений: 146
И все-таки, подскажите, в каком методе можно обрабатать и поменять иконку (крестик или плюсик) - dragEnter или dragOver?
И еще у меня получается так, что как бы я не обрабатывал, он все равно падает в DataGrid.


Последний раз редактировалось Bruiser; 04.12.2007 в 17:59.
Старый 06.12.2007, 12:50
Bruiser вне форума Посмотреть профиль Отправить личное сообщение для Bruiser Найти все сообщения от Bruiser
  № 6  
Ответить с цитированием
Bruiser

Регистрация: Sep 2007
Сообщений: 146
Для тех, кто еще будет разбираться...

В приложение два DataGrid
Код:
<mx:DataGrid id="dg_from" dragEnabled="true" />
<mx:DataGrid id="dg_to" dragOver="doDragOver(event)" 
   dragDrop="doDragDrop(event)" dragEnter="doDragEnter(event)" />
Четыре функции, комментарии в коде
Код:
//Задаем, что будем сами переопределять
private function doDragEnter(event:DragEvent):void {
   var dragInitiator:DataGrid=DataGrid(event.currentTarget);
   DragManager.acceptDragDrop(dragInitiator);  
}

//В объекте items те элементы, которые мы перетаскиваем
private function doDragOver(event:DragEvent):void{
	var items:Array = event.dragSource.dataForFormat("items") as Array;
	var arr:ArrayCollection = dg_to.dataProvider as ArrayCollection;
	var flag:Boolean;
//Можно добавить функцию для проверки уникальности и если такой элемент уже есть, то не разрешать перекидывать (будет знак крестик)
	flag = checkUniq(items);
	if (!flag){
//запрет переноса
		DragManager.showFeedback(DragManager.NONE);
	}else{
//копирование элемента (знак - зеленый плюс)
		DragManager.showFeedback(DragManager.COPY);
	}
}

//Эта функция вызывается, если копирование разрешено (COPY, MOVE...)	
private function doDragDrop(event:DragEvent):void {
	var dropTarget:DataGrid=DataGrid(event.currentTarget);              
        doDragExit(event);               
        var items:Array = event.dragSource.dataForFormat("items") as Array;
        var dropLoc:int = dropTarget.calculateDropIndex(event);
        if (dropTarget.dataProvider==null){
        	dropTarget.dataProvider = new ArrayCollection();
	} 
        for(var i:uint=0; i < items.length; i++){
                  (dropTarget.dataProvider).addItemAt(items[i],dropLoc);
	} 
}
        
private function doDragExit(event:DragEvent):void {
	var dropTarget:DataGrid=DataGrid(event.currentTarget);
        dropTarget.hideDropFeedback(event);
}

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

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

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


 


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


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