Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   drag & drop кнопок (http://www.flasher.ru/forum/showthread.php?t=116634)

SlaydeR 06.10.2008 20:33

drag & drop кнопок
 
Хочу сделать что бы можно было менять местами кнопки (button) в контроле Tile, так как в нем если кнопки не помещаются на одну строку,
то перемещаются на новую строку.
Начальную стадию сделал, а завершить пока не получается, т.е не могу зафиксировать окончательную позицию кнопок.

Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" xmlns:adobe="http://www.adobe.com/2006/fc">
        <mx:Script>
        <![CDATA[
                import mx.controls.List;
                import mx.containers.Box;
                import mx.controls.Alert;
                import mx.managers.DragManager;
                  import mx.core.DragSource;
                    import mx.controls.Button;
                import mx.events.DragEvent;
                import flash.events.*;

                    private function dragIt(event:MouseEvent, value:uint):void {
                        var dragInitiator:Button = event.currentTarget as Button;
                            var dragSource:DragSource = new DragSource();
                        dragSource.addData(value, 'value');
                        DragManager.doDrag(dragInitiator, dragSource, event);
                }

                    private function doDragEnter(event:DragEvent):void {
                    var dropTarget:Button = event.currentTarget as Button;
                    //Alert.show("Drag&");
                    if (event.dragSource.hasFormat('value'))
                    {
                        DragManager.acceptDragDrop(dropTarget);
                    }
                }

            private function doDragDrop(event:DragEvent):void {
                    var dropTarget:Button = Button(event.currentTarget);
                    tiDrop.text += "dragDrop triggered" + "\n";

                    // Получаем перетаскиваемые данные.
                var items:Object = event.dragSource.dataForFormat("value");
                    tiDrop.text += items + "\n";
                   
                    // Получаем позицию вставки объекта в целевой компонент.
                var dropLoc:String = dropTarget.id;
                tiDrop.text += dropLoc + "\n";
            }
           
            private function doDragOver(event:DragEvent):void {
                DragManager.showFeedback(DragManager.LINK);
            }
        ]]>
        </mx:Script>
       
<mx:Panel width="100%" height="350">
<mx:Tile id="dragdrop" width="400">
        <mx:Button id="btn1" label="Tab 1" dragEnter="doDragEnter(event);" dragDrop="doDragDrop(event);" dragOver="doDragOver(event)" mouseDown="dragIt(event, 1)" />
        <mx:Button id="btn2" label="Tab 2" dragEnter="doDragEnter(event);" dragDrop="doDragDrop(event);" dragOver="doDragOver(event)" mouseDown="dragIt(event, 2)" />
        <mx:Button id="btn3" label="Tab 3" dragEnter="doDragEnter(event);" dragDrop="doDragDrop(event);" dragOver="doDragOver(event)" mouseDown="dragIt(event, 3)" />
        <mx:Button id="btn4" label="Tab 4" dragEnter="doDragEnter(event);" dragDrop="doDragDrop(event);" dragOver="doDragOver(event)" mouseDown="dragIt(event, 4)" />
        <mx:Button id="btn5" label="Tab 5" dragEnter="doDragEnter(event);" dragDrop="doDragDrop(event);" dragOver="doDragOver(event)" mouseDown="dragIt(event, 5)" />
        <mx:Button id="btn6" label="Tab 6" dragEnter="doDragEnter(event);" dragDrop="doDragDrop(event);" dragOver="doDragOver(event)" mouseDown="dragIt(event, 6)" />
        <mx:Button id="btn7" label="Tab 7" dragEnter="doDragEnter(event);" dragDrop="doDragDrop(event);" dragOver="doDragOver(event)" mouseDown="dragIt(event, 7)" />
        <mx:Button id="btn8" label="Tab 8" dragEnter="doDragEnter(event);" dragDrop="doDragDrop(event);" dragOver="doDragOver(event)" mouseDown="dragIt(event, 8)" />
</mx:Tile>
<mx:TextArea id="tiDrop" height="300" width="300" />
</mx:Panel>
</mx:Application>


Отловить смог какие кнопки меняю местами, в отладочной TextArea это видно, а как их зафиксировать, подскажите пожалуйста.


Часовой пояс GMT +4, время: 04:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.