In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

flash on 2011-7-22

created by Ivan Salnik
Get Adobe Flash player
by gnuapp 22 Jul 2011
    Embed
/**
 * Copyright gnuapp ( http://wonderfl.net/user/gnuapp )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/iIMS
 */

package {
    
    /*
    *created by Ivan Salnik
    */
    
    import flash.display.Sprite;
    import flash.display.Graphics;
    import flash.events.MouseEvent;
    import flash.geom.Point;
    
    public class FlashTest extends Sprite {
    
        private  var p:Point;
        private var container:Sprite;
        private var square:Sprite;
        private var buttonDrag:Sprite;
        
        
        //CONSTRUCTOR
        public function FlashTest() {


            container = new Sprite();
            addChild(container);
            buttonDrag = createSquare(20, 20, 0xFF0000);
            //создание основы и добавления в список отображения контейнера 
            square = createSquare(100, 100);
            container.addChild(square);
            //Выравнивание окна по центру
            container.x = stage.stageWidth/2 - container.width/2;
            container.y = stage.stageHeight/2 - container.height/2;
            square.addEventListener(MouseEvent.MOUSE_DOWN, containerDown);
            stage.addEventListener(MouseEvent.MOUSE_UP, stageMouseUp);
            
            //создание кнопки и добавления в список отображения контейнера 
            
            container.addChild(buttonDrag);
            buttonDrag.x = square.width - buttonDrag.width;
            buttonDrag.y = square.height - buttonDrag.height;
            buttonDrag.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownDrag);
            
        }
        
         //функция рисует окно и кнопку по заданным параметрам и возвращает результат
           private function createSquare(initWidth:int, initHeight:int, color:uint = 0x0000FF):Sprite {
                var square:Sprite = new Sprite()
                square.graphics.beginFill(color);
                square.graphics.drawRect(0, 0, initWidth, initHeight);
                square.graphics.endFill();
            
                return square;
            }
   
            //функция перерисовывает окно с новыми размерами при перемещении кнопки
           private function updateSet(initWidth:int, initHeight:int, color:uint = 0x0000FF):void {
                square.graphics.clear();
                square.graphics.beginFill(color);
                square.graphics.drawRect(0, 0, initWidth, initHeight);
                square.graphics.endFill();
                
            }
            
            private function mouseDownDrag(e:MouseEvent):void {
                stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveDrag);
            }
            
           private function mouseMoveDrag(e:MouseEvent):void {
                p = new Point(container.mouseX, container.mouseY);//обновление координат курсора
                buttonDrag.x = Math.max(this.localToGlobal(p).x, 50)//перевод локальных координат container в глобальные, (Math.max) - высчитывает минимальное значение 
                buttonDrag.y = Math.max(this.localToGlobal(p).y, 70)//перевод локальных координат container в глобальные
                updateSet(buttonDrag.x+buttonDrag.width, buttonDrag.y+buttonDrag.height);
                e.updateAfterEvent();//обновление визуализации, если список отображения был изменен 
            }
            //удаляет событие слижения за мышью и останавливает перетаскивания окна
           private function stageMouseUp(e:MouseEvent):void {
                stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveDrag);
                container.stopDrag();
                
            }
            //перетаскивание окна
           private function containerDown(e:MouseEvent):void {
                container.startDrag();
            }
            
            
    }//class
}//package