flash on 2012-12-7
始点→終点間の座標
♥0 |
Line 121 |
Modified 2012-12-07 15:26:42 |
MIT License
archived:2017-03-20 05:27:31
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))
}
}