1

ここに画像の説明を入力

写真が示すように、item1 の List1 を item iv の List2 にドラッグすると仮定すると、アイテム iv がドラッグオーバー状態を検出し、それ自体をハイライトするようにしたいので、どのように実装しますか?

4

2 に答える 2

1

各リスト要素にリスナーをアタッチして、MouseEvent.MOUSE_OVER何かをドラッグしているかどうかを確認し、ドラッグしている場合event.targetは強調表示します。

于 2013-03-29T12:08:13.433 に答える
0

これが私の解決策とコードです: List2の場合:

<s:List
itemRenderer="components.MyRenderer"
dragEnter="myDragEnterHandler(event)"
dragOver="myDragOverHandler(event)"
dragExit="myDragExitHandler(event)">
<fx:Script>
    <![CDATA[
        private function myDragEnterHandler(event:DragEvent):void {
            //we shoudld make List2 be drop target
            DragManager.acceptDragDrop(e.currentTarget as IUIComponent);              
        }

        private function myDragOverHandler(event:DragEvent):void {
            var dropIndex:int = calDropIndex(event);
            var element:MyRenderer= calDropItem(dropIndex);
            //undo highlight if there is last over item
            if(lastOverItem) {
               lastOverItem.undoHighlight();            
            }
            //remember the last highlight one and highlight it
            lastOverItem = element;     
            element.highlight(); 
        }

        private function myDragExitHandler(event:DragEvent):void {
             var dropIndex:int = calDropIndex(event);
             var element:MyRenderer= calDropItem(dropIndex);
             element.undoHighlight(); 
        }

        private function calDropIndex(event:DragEvent):int {
             var dropLocation:DropLocation = 
                 event.currentTarget.layout.calculateDropLocation(event);
             var dropIndex:int = dropLocation.dropIndex;
             return dropIndex;
       }

       private function calDropItem(dropIndex:int):MyRenderer{
           var element:IVisualElement;
           if (layout.useVirtualLayout) {
            element = layout.target.getVirtualElementAt(dropIndex);
           } else {
            element = layout.target.getElementAt(dropIndex);
           }
           return element as MyRenderer;
      }
    ]]>
</fx:Script>
</S:List>
于 2013-04-02T01:32:17.010 に答える