Я пытаюсь сделать перетаскивание между двумя списками искр, расположенными в разных компонентах.Поскольку моя первая попытка не сработала, я решил поискать ее в Google и прочесть еще немного о DragAndDrop ... перепробовал все примеры, которые смог найти, но ничего не подойдет для меня.
Итак, давайте перейдем к делу.
- Компонент A имеет List1
- Компонент B имеет List2
Компонент A - Список 1 имеет dragEnabled="true"
и mouseDown="initiateDrag(event)"
private function initiateDrag(e:MouseEvent):void{
var dragInitiator:IUIComponent = e.target as IUIComponent;
var de:DragSource = new DragSource;
de.addData(dragInitiator, 'artist');
DragManager.doDrag(dragInitiator, de, e);
}
По тому, что я прочитал, используя mouseDown
, я запускаю событие перетаскивания, создавая, какие данные я собираюсь перетащить ... этоcase 'artist'
Компонент B - Список 2 имеет dropEnabled = "true", dragEnter = "dragEnterHandler (событие)" и dragDrop = "dragDropHandler (событие)«
private function dragEnterHandler(e:DragEvent):void{
if(e.dragSource.hasFormat('artist')){
DragManager.acceptDragDrop(List(e.currentTarget));
}
}
Теперь, когда я перетаскиваю itemRender из списка Component A List 1 over Component B List 2, это , чтобы вызватьфункция dragEnterHandler(event)
, и это делает ... но я также ожидал, что DragManager.acceptDragDrop(List(e.currentTarget))
изменит индикатор с « красный крест » на « зеленый плюс » иd этого не происходит ... и из-за этого перетаскиваемый itemRender (proxi) возвращается к своему первоначальному списку, в этом случае он возвращается к Компоненту A List 1
Я уже потратилчасы и часы отлаживают и тестируют другие подходы, и ни один из них не работает для меня.
Кто-нибудь здесь знаком с перетаскиванием между компонентами, которое может мне помочь?