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

forked from: dragging example for stackoverflow

Get Adobe Flash player
by lean 28 Mar 2011
    Embed
/**
 * Copyright lean ( http://wonderfl.net/user/lean )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/c8zZ
 */

// forked from www0z0k's dragging example for stackoverflow
package {
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    import flash.events.ContextMenuEvent;
    import flash.events.Event;
    import flash.events.FocusEvent;
    import flash.events.MouseEvent;
    import flash.display.Sprite;
    import flash.ui.ContextMenu;
    
    import org.libspark.betweenas3.BetweenAS3;
    import org.libspark.betweenas3.easing.*;
    import org.libspark.betweenas3.events.TweenEvent;
    import org.libspark.betweenas3.tweens.IObjectTween;

    [SWF(frameRate='30')]
    public class NewClass extends Sprite {
        private var drag:Sprite;
        private var down:Boolean = false;
        public function NewClass() {
            init();            
        }
        
        private function init():void{
            drag = new Sprite();
            addChild(drag);
            with(drag.graphics){
                beginFill(0x0000ff);
                lineTo(0, 24);
                lineTo(24, 24);
                lineTo(24, 0);
                lineTo(0, 0);
                endFill();
            }
  /*4*/     /*var t:Timer = new Timer(10);
            t.addEventListener(TimerEvent.TIMER, tick);
            t.start();*/
            
  /*5*/     var t1:Timer = new Timer(100);
            t1.addEventListener(TimerEvent.TIMER, tickTween);
            t1.start();            
            
            stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
  /*1*/     //stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
            stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
            stage.addEventListener(Event.MOUSE_LEAVE, onLeave);
            stage.addEventListener(FocusEvent.FOCUS_OUT, onLeave);
            stage.addEventListener(Event.DEACTIVATE, onLeave);
  /*2*/     //addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }
        
        // Parameters are:
        // .tween(Target, ToValues, FromValues, Time, Easing, Delay)
        // [http://www.libspark.org/wiki/BetweenAS3/en#Easing]
        private function tickTween(e:TimerEvent):void{
            if(down){
                BetweenAS3.tween(
                    drag, 
                    {x: mouseX - drag.width / 2, y: mouseY - drag.height / 2}, 
                    null, 
                    0.1, 
                    /*Expo*/Quad.easeOutIn
                ).play();
            }
        }

        
        private function tick(e:TimerEvent):void{
            onEnterFrame();
        }

        
        private function onEnterFrame(e:Event = null):void{
            if (down) {
                drag.x = mouseX - drag.width / 2;
                drag.y = mouseY - drag.height / 2;
            }
        }

        
        private function onLeave(e:Event):void {
            trace(e.type);
            drag.x = 0;
            drag.y = 0;
            onUp();
        }
        
        private function onMove(e:MouseEvent):void {
            if (down) {
                drag.x = e.stageX - drag.width / 2;
                drag.y = e.stageY - drag.height / 2;
            }
        }
        
        private function onDown(e:MouseEvent):void {
            down = true;
  /*3*/     //drag.startDrag(true);
        }
        
        private function onUp(e:Event = null):void {
            down = false;
  /*3*/     //drag.stopDrag();
        }

    }
}