Добавьте перетаскивание в TextArea во всплывающем окне

Я создал класс ResizeableTitleWindow, который расширяет Titlewindow (чтобы сделать его изменяемым). Внутри RTW я добавляю TextArea и отображаю RTW как всплывающее окно. Как добавить перетаскивание в TextArea?

public function createPopUpEdit():void {
var rtw:ResizableTitleWindow = new ResizableTitleWindow();
var st:TextArea = new TextArea();
rtw.addElement(st);
PopUpManager.addPopUp(rtw, this, false);
PopUpManager.centerPopUp(rtw);

Обычно вы делаете это, устанавливая свойства в файле .mxml:

<s:TextArea id="st"
            dropEnabled="true"
            dragOver="onlyAllowCopyDragOverHandler(event)"
            dragDrop="myComponent_dragDropHandler(event)"
... 

Но в этом случае st не определяется в mxml, а создается с помощью «нового»:

var st:TextArea=new TextArea();

Я хочу сделать что-то подобное в моей функции createPopUpEdit:

st.dropEnabled="true";
st.dragOver="onlyAllowCopyDragOverHandler(event)";
etc.

person Jan Sander    schedule 25.02.2015    source источник


Ответы (1)


Напишите следующий код. Надеюсь, это поможет вам.

            private var st:TextArea;
            private var rtw:TitleWindow;

            protected function init(event:FlexEvent):void
            {
                    rtw = new TitleWindow();
                    st = new TextArea();
                    st.width = 50;
                    st.height = 50;
                    st.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
                    st.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
                    rtw.width = 500;
                    rtw.height = 500;
                    rtw.addElement(st);
                    PopUpManager.addPopUp(rtw, this, false);
                    PopUpManager.centerPopUp(rtw);

            }

            private function onMouseDown(e:MouseEvent):void
            {
                st.startDrag(true,new Rectangle(0,0,rtw.width,rtw.height));
            }

            private function onMouseUp(e:MouseEvent):void
            {
                st.stopDrag();
            }

Приведенный выше код будет перетаскивать текстовое поле в popupView.

Изменить:

Чтобы добавить динамику события, вы можете сделать следующее:

st.addEventListener(DragEvent.DRAG_OVER,onlyAllowCopyDragOverHandler);
st.addEventListener(DragEvent.DRAG_DROP,myComponent_dragDropHandler);
person ketan    schedule 26.02.2015