2012-05-29 3 views
0

Я работаю с AIR.Перетащите список предметов в itemeditor

У меня есть окно, одно со списком (глоссарий) и другое с datagrid и редактируемые ячейки. Цель состоит в том, чтобы перетащить элемент в список и отбросить его на позицию курсора на itemEditor (datagrid). Я не знаю, как это сделать.

Это ниже кода, который я использую для выполнения одного и того же действия не в datagrid, а в текстовом поле, которое находится в одном окне datagrid.

// На 1-ом окне (глоссария)

<s:List dataProvider="{DP_GlossList2}" id="list2" 
          labelField="glNom" 
          dragEnabled="true" 
          dropEnabled="true" 
          dragMoveEnabled="true" 
          click="list2_clickHandler(event)" 
          height="60%" width="100%"/> 

// на втором окне: текстовое поле и DataGrid

// перетащить падение

protected function retTTAfaire_dragDropHandler(event:DragEvent):void 
     { 
      retTTAfaire.text = retTTAfaire.text.substring(0,retTTAfaire.selectionAnchorPosition)+ " "+event.dragSource.dataForFormat("itemsByIndex")[0].glNom+ 
       " "+retTTAfaire.text.substring(retTTAfaire.selectionAnchorPosition+1); 
     } 

     protected function retTTAfaire_dragEnterHandler(event:DragEvent):void 
     { 
      DragManager.acceptDragDrop(spark.components.TextArea(event.target)); 

     } 

Пожалуйста, помогите меня. Спасибо

+0

http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7c0a.html – ethrbunny

+3

Сначала, во-первых, предположим, что переполнение стека третье. Пожалуйста, не наводняйте очередь вопросов со всем, что вы не знаете, я мог бы быть здесь весь день, размещая все, что я не знаю. Хорошие вопросы здесь включают некоторый уровень усилий и/или ошибку, с которой может столкнуться кто-то другой, и воспользоваться этим решением здесь. Это не мое намерение оттолкнуть вас, но вы должны проявить некоторые усилия, если я собираюсь поставить время, чтобы помочь вам. Может быть, вы пытаетесь, но вы не показываете его в своих сообщениях, ссылайтесь на то, что вы пробовали почтовый код, который вы пробовали. – shaunhusain

+0

Несмотря на ваше мнение, я многому занимаюсь перед отправкой вопроса. Для моей проблемы я нашел, как задрапировать падение между списком, но не с добавлением item.label в конце datagrid itemEditor! – Flex60460

ответ

0

У меня нет точного ответа, но в одной области для исследования используется метод getObjectsUnderPoint() (из DisplayObjectContainer). Использование точки - из локальной системы координат из события Drag/Mouse. Это заставит вас взглянуть на «правильную» ветвь дерева отображения.

Я думаю, что ваша сложная часть, чтобы выяснить, знает, с каким элементом вы хотите взаимодействовать - в этом случае редактор элементов. При повторении списка подозрительных вы хотите сравнить его с интерфейсом, который, как известно, имеет ItemEditor (IGridItemRenderer), но не другие объекты.

Кроме того, в зависимости от того, в какой точке координат находятся координаты mouseX/mouseY, вам, скорее всего, придется преобразовать ее в ту же систему координат, в которой находится редактор элементов. В этом случае Редакторы обрабатываются PopupManager (или SystemManager) - или должно быть, если команда Flex SDK следовала той же парадигме с искрами, что и с гало, но я этого не подтвердил.

Я не могу сказать по формулировке вашего вопроса, но если вы пытаетесь разрешить размещение предметов после открытия редактора элементов, это будет очень сложно из-за управления фокусом.

Смежные вопросы