flash on 2012-12-7

by hacker_cobulht0
始点→終点間の座標
♥0 | Line 121 | Modified 2012-12-07 15:26:42 | MIT License
play

ActionScript3 source code

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

package {//始点→終点間の座標
    import flash.display.Sprite;
    import flash.events.*;
    import flash.geom.*;
    
    [SWF(width = "465", height = "465", backgroundColor = 0xffffff, frameRate = "60")]
    
    public class squareXline extends Sprite{

        private var _Base:Sprite=new Sprite();
        private var square:Sprite=new Sprite();
        
        private var mdP:Point=new Point();
        private var muP:Point=new Point();
        
        private var lineList:Array=new Array();
        
        public function squareXline(){
            if (stage) init();else addEventListener(Event.ADDED_TO_STAGE,init );
        }
        public function init(ev:Event = null){
            removeEventListener( Event.ADDED_TO_STAGE, init ) ;
            
            var bg:back_ground=new back_ground();
            addChildAt(bg,0);
            
            stage.addChildAt(square,0);
            stage.addChildAt(_Base,2);
            
            square.graphics.beginFill(0xfecdc7);
            square.graphics.drawRect(0,0,160,160);
            square.graphics.endFill();
            square.x=150;
            square.y=150;
            addChild(square);
            
            stage.addEventListener(MouseEvent.MOUSE_DOWN, mo_Dw);
            stage.addEventListener(MouseEvent.MOUSE_UP, mo_Up);
        }
        
        private function mo_Dw(ev){
            
            lineList=new Array();
            mdP.x=mouseX;
            mdP.y=mouseY;
            
        }
        private function mo_Up(ev){            
            muP.x=mouseX;
            muP.y=mouseY;
            
            ff_XX();
            
            _Base.graphics.lineStyle(14,0xFB9394);
            _Base.graphics.moveTo(mdP.x,mdP.y);
            _Base.graphics.lineTo(muP.x,muP.y);
            _Base.graphics.endFill();
            
            ff_ZZ();
            
        }
        
        private function ff_XX(){
            var sskj:String="not";
            if(Math.max(mdP.y,muP.y)-Math.min(mdP.y,muP.y)>Math.max(mdP.x,muP.x)-Math.min(mdP.x,muP.x)){sskj="_Y";}
            else if(Math.max(mdP.y,muP.y)-Math.min(mdP.y,muP.y)<Math.max(mdP.x,muP.x)-Math.min(mdP.x,muP.x)){sskj="_X";}
            
            var _Ss:Number;
            var _Se:Number;
            if(sskj=="_Y"){
                _Ss=Math.min(mdP.y,muP.y);
                _Se=Math.max(mdP.y,muP.y);
            }else if(sskj=="_X"){
                _Ss=Math.min(mdP.x,muP.x);
                _Se=Math.max(mdP.x,muP.x);
            }
            
            if(sskj!="not"){
                
                var P1:Point=mdP;
                var P2:Point=muP;        
                var P3:Point;
                var P4:Point;
                
                        for (var q:int=_Ss; q < _Se; q++) {                            
                            var cPt:Point=new Point();
                            
                            if(sskj=="_Y"){
                                P3=new Point(mdP.x,q);
                                P4=new Point(muP.x,q);
                            }else if(sskj=="_X"){
                                P3=new Point(q,mdP.y);
                                P4=new Point(q,muP.y);
                            }
                            var dR:Number=((P4.x-P3.x)*(P1.y-P3.y)-(P4.y-P3.y)*(P1.x-P3.x));
                            var dS:Number=((P4.x-P3.x)*(P3.y-P2.y)-(P4.y-P3.y)*(P3.x-P2.x));                                        
                                            
                            cPt.x=P1.x + (P2.x-P1.x)*(dR/(dR + dS));
                            cPt.y=P1.y + (P2.y-P1.y)*(dR/(dR + dS));
                            
                            lineList.push(cPt);
                        }
            }
        }
        
        private function ff_ZZ(){
            for (var q:int=0; q < lineList.length; q++) {
                var dp:maru=new maru();
                stage.addChild(dp);
                dp.x=lineList[q].x;
                dp.y=lineList[q].y;
                
                if(square.hitTestPoint(lineList[q].x,lineList[q].y)){dp.alpha=0;}
                    if(q%10!=0){dp.alpha=0;}
            }
        }
        
        
        
        
        
        
    }
}

import flash.display.Sprite;
import flash.display.BitmapData;
import flash.display.Bitmap;

class maru extends Sprite{
public function maru (){
        this.graphics.beginFill(0xC5E384);
        this.graphics.drawCircle(0,0,2.2);
        this.graphics.endFill();
    }
}

class back_ground extends Sprite{
public function back_ground( ){
    var bmp:BitmapData = new BitmapData(465, 465, false, 0xffffff);
    var bg:Sprite = new Sprite();
    bg.graphics.beginFill(0xFFFFFF);
    bg.graphics.drawRect(0,0,465,465);
    bg.graphics.endFill();
    for(var j:int=0; j < 1150; j++){
        var dot:Sprite=new Sprite();
        dot.graphics.beginFill(0xC5E384,0.25);
        dot.graphics.drawCircle(0,0,2.5);
        dot.graphics.endFill();
        dot.x=j%48*10;
        if(j%2==0){dot.y=Math.floor(j / 48)*20+10;}else{dot.y=Math.floor(j / 48)*20;}        
        bg.addChild(dot);
    }
    bmp.draw(bg);
    addChild(new Bitmap(bmp))
}
}