Flex : 런타임에서 구성 요소를 크기를 조정하고 이동하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/609456

  •  03-07-2019
  •  | 
  •  

문제

제발, 누구 든지이 일을하는 방법을 안내해 줄 수 있습니다.

Pannel과 Box가 있습니다. Pannel은 내 구성 요소 Pannel입니다 (내부 구성 요소 Pannel은 이미지, TextArea, Video) 및 Box는 내 구성 요소 작성을위한 대상 상자입니다. 사용자는 생성하려는 구성 요소를 선택하고 (동적 생성) 대상 상자 (드래그 앤 드롭 이벤트)로 드래그 할 수 있습니다. 그런 다음 구성 요소를 작성한 후 사용자는 생성 한 구성 요소를 드래그하여 대상 상자에 어디에나 배치 할 수 있으며 사용자는 생성 한 구성 요소 (런타임 크기 조정)를 크기를 조정할 수 있습니다.

드래그 앤 드롭에 대한이 코드가 있으며이 코드는 이미지에서만 작동하는 것 같습니다.

//-----action script-----//
        private function dragIt(event:MouseEvent, value: String, objParent: String, objName: String):void 
        {           
            var dragInitiator:Image = event.currentTarget as Image;    
            var dragSource:DragSource = new DragSource();

            dragSource.addData(value,'value');
            dragSource.addData(objParent, 'parent');
            dragSource.addData(objName, 'objname'); 

            var dragProxy:Image = new Image();
            dragProxy.source = event.currentTarget.source;


            DragManager.doDrag(dragInitiator, dragSource, event, dragProxy);
        }


        private function dragEnterHandler(event:DragEvent):void 
        {
            var dropTarget:Box=event.currentTarget as Box;
            dropTarget.setStyle("borderThickness", 5);
            DragManager.acceptDragDrop(dropTarget);
        }

        private function dragExitHandler(event:DragEvent):void
        {
            var dropTarget:Box=event.currentTarget as Box;                
            revertBoxBorder();                
        }     

        private function revertBoxBorder():void
        {
            targetBox.setStyle("borderThickness", 1);                
        }

        private function dragDropHandler(event:DragEvent):void 
        {
            var value:String = event.dragSource.dataForFormat('value') as String;
            var objParent:String = event.dragSource.dataForFormat('parent') as String;
            if(value == "mp3")
            {
             //do something     
            }
            else if (value == "image")
            {
                if (objParent == "panel")
                {
                    var imgView: Image = new Image;                 
                    imgView.x = event.stageX;
                    imgView.y = event.stageY;

                    addChild(imgView);
                    imgView.name = String(getChildByName(imgView.name).parent.numChildren-1);     
                    imgView.addEventListener(MouseEvent.MOUSE_MOVE,  function(e:MouseEvent):void 
                    {
                    dragIt(e, value, 'box', Image(e.target).name);
                });
                    imgView.source = ImgInsert;
                }
                else
                {
                    var objName:String = event.dragSource.dataForFormat('objname') as String;
                    getChildByName(objName).parent.getChildAt(int(objName)).x = event.stageX;
                    getChildByName(objName).parent.getChildAt(int(objName)).y = event.stageY;
                }

            }
            else if (value == "textarea")
            {
                //do something                  
            }

        }

//-----mxml code------//
<mx:Panel x="0" y="37" width="91" height="417" layout="absolute" title="Component" borderColor="#8DA5AB" color="#345860" borderStyle="outset">
    <mx:Image x="7" y="43" width="21" height="18" source="{TxtAreaInsert}" mouseMove="dragIt(event,'textarea','panel','')"/>
    <mx:Image x="36" y="43" width="21" height="18" source="{ImgInsert}" mouseMove="dragIt(event,'image','panel','')"/>
    <mx:Image x="36" y="80" width="21" height="18" source="{Mp3Insert}" mouseMove="dragIt(event,'mp3','panel','')"/>
    <mx:Image x="7" y="80" width="21" height="18" source="{VdoInsert}" mouseMove="dragIt(event,'video','panel','')"/>
</mx:Panel>
<mx:Box id="targetBox" y="37" width="589" height="417" borderColor="#8CC2E8" backgroundColor="#D5DBEE"
    dragExit="dragExitHandler(event)" dragEnter="dragEnterHandler(event)" dragDrop="dragDropHandler(event)" left="99">
</mx:Box>;

TxtArea와 같은 비 이미지 구성 요소를 이동하는 방법은 무엇입니까? 대상 상자 내부의 구성 요소를 크기를 조정하는 방법은 무엇입니까? (이것은 구성 요소를 만들 때 Flex의 GUI와 같습니다) 감사합니다 ..

도움이 되었습니까?

해결책

체크 아웃 Rogue-development.com의 객체 손잡이 나는 구성 요소를 이동 / 크기를 조정하기 위해 꽤 좋은 성공으로 이것을 사용했습니다.

다른 팁

또한 시도해보십시오 Pantaste Library 객체 핸들보다 훨씬 더 정교합니다.

이동 http://sourceforge.net/projects/tcycomponents/
원하는 경우 패키지와 데모를 다운로드하십시오.

Delphi 2009처럼 쉽게 이동/크기를 조정하기 위해 tcyreziser 구성 요소를 사용하십시오!

고려, Mauricio

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top