본문 바로가기

Flex 드래그앤드롭

flex drag and drop


private function dragEnterHandler(e:DragEvent):void{
                if(e.dragSource.hasFormat(FImage.ELEMENTS_NAME)){
                    msgStack.visible = false;
                    sizeSelectCanvas.visible = true;
                    fadeOff.stop();
                    fadeOn.play();
                    this.alpha = 1;
                    DragManager.acceptDragDrop(this);
                   
                }
            }

dragEnter : 드롭될 대상에서 감시.. 타켓에 처음 드래그 아이템이 오버되었을때 한번 실행되며
아이템으로 받을 것인지 판별 후 아이템으로 받도록 함..


private function dragOverHandler(e:DragEvent):void{
               
                if(PrintOptionButtonManager.getHighlightBtn(e) != null){
                   
                    DragManager.showFeedback(DragManager.COPY);
                }else{
                    DragManager.showFeedback(DragManager.NONE);
                }
               
            }

dragOver :  dragEnter 가 실행된 후 아이템을 검사하여 상황에 따라 피드백을 호출함..
none 일 경우 드롭해도 드롭이벤트가 디스패치되지 않는다..


private function dragExitHandler(e:DragEvent):void{
                this.alpha = 0.5;
                fadeOn.stop();
                fadeOff.play();
            }

dragEnter 일때 변형이 가해진 경우 다시 드래그가 아웃될때 변형을 원상복귀하는 처리를 함..




private function dragDropHandler(e:DragEvent):void{
                var btn:Button = PrintOptionButtonManager.getHighlightBtn(e);
                this.alpha = 0.5;
                fadeOff.play();
                                       
                if(btn != null){
                    var sizeType:String = btn.label;
                    listAddItem(sizeType, printListView.photoPrintTileList.selectedItems);
                    printListView.nextBtnVisible = true;
                   

                }
            }