ライン作成の練習3

by yuugurenote
クリックしながらマウスを動かして
マウスを放すとラインを作成します。
本当はクリックからクリックでラインを
作ってみたいです。色々調べて頑張ります。
♥0 | Line 63 | Modified 2012-01-13 05:43:58 | MIT License
play

ActionScript3 source code

/**
 * Copyright yuugurenote ( http://wonderfl.net/user/yuugurenote )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/dq5H
 */

package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.events.Event;

    [SWF(width=465,height=465,backgroundColor=0xFFFFFF,frameRate=60)]
    public class AS120111_01 extends Sprite {
        public var sw:Number=stage.stageWidth;
        public var sh:Number=stage.stageHeight;
        public var _mySprite:mySprite;
        public var _px1:Number;
        public var _py1:Number;
        public var _px2:Number;
        public var _py2:Number;

        public function AS120111_01() {
            this.graphics.beginFill(0x000000,1);
            this.graphics.drawRect(0,0,sw,sh);
            this.graphics.endFill();

            stage.addEventListener(MouseEvent.MOUSE_DOWN,xDown);
            stage.addEventListener(MouseEvent.MOUSE_UP,xUp);

        }
        public function xDown(e:MouseEvent):void {
            _px1=mouseX;
            _py1=mouseY;
        }
        public function xUp(e:MouseEvent):void {
            _px2=mouseX;
            _py2=mouseY;
            _mySprite=new mySprite(_px1,_py1,_px2,_py2);
            addChild(_mySprite);
        }
    }
}

import flash.display.Sprite;
import flash.events.Event;

class mySprite extends Sprite {
    public var _px1:Number;
    public var _py1:Number;
    public var _px2:Number;
    public var _py2:Number;
    public var myNum:Number=0;
    public var px:Number=465;
    public var cNum:Number=Math.random()*0xFFFFFF;

    public function mySprite(px1:Number,py1:Number,px2:Number,py2:Number):void {
        _px1=px1;
        _py1=py1;
        _px2=px2;
        _py2=py2;
        addEventListener(Event.ENTER_FRAME,xEnter);
    }
    public function xEnter(e:Event):void {
        myNum+=0.02;
        if (myNum>1)     myNum=1;
        this.graphics.clear();
        this.graphics.lineStyle(3,0xFFFFFF,1,false,"none");
        this.graphics.moveTo(_px1,_py1);
        this.graphics.lineTo((_px2 - _px1)*myNum+_px1,(_py2-_py1)*myNum+_py1);
        this.addEventListener(Event.ENTER_FRAME,xEnter);

        this.alpha-=0.001;
        if (this.alpha<0) {
            removeEventListener(Event.ENTER_FRAME, xEnter);
        }
    }
}