flash on 2016-9-12
♥0 |
Line 71 |
Modified 2016-09-12 05:22:21 |
MIT License
archived:2017-03-20 16:22:42
ActionScript3 source code
/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/EXiq
*/
package {
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
deb = new TextField();
deb.width=320; deb.height=240;
deb.mouseEnabled=false;
addChild(deb);
stage.addEventListener(MouseEvent.MOUSE_UP, onMup);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMdown);
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public function onMdown(e:MouseEvent):void { mbutton = 1; }
public function onMup(e:MouseEvent):void { mbutton = 0; }
public var deb:TextField;
public var mbutton:int = 0;
public var cx:Number = 235;
public var cy:Number = 235;
public var vx:Number = 0;
public var vy:Number = 0;
public var ang:Number = 1.57*3;
public var px:Number = 200;
public var py:Number = 350;
public var gt:int = 0;
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2, 0);
if (mbutton > 0) { cx= stage.mouseX; cy= stage.mouseY; vx=0; vy=0; }
// ang+=0.01;
/*
gt +=1;
if (gt %80 == 0)
{ ang = Math.random()*6.28;
px = 235 + Math.random()*300-150;
py = 235 + Math.random()*300-150;
}
*/
ang = 1.57*3.5;
// ang = 1.57*3.95;
// vx+=-0.03;
var nx:Number; var ny:Number;
nx = Math.cos(ang);
ny = Math.sin(ang);
var ta:Number;
ta = Math.atan2(stage.mouseY-cy, stage.mouseX-cx);
vx += Math.cos(ta)*0.5;
vy += Math.sin(ta)*0.5;
vx+= nx*-0.3;
vy+= ny*-0.3;
var dist:Number;
dist = (cx-px)*nx + (cy-py)*ny;
var dot:Number;
dot = nx*vx + ny*vy;
deb.text = " dist " + dist.toFixed(2) + "\n vx " + vx + "\n vy " + vy
+ "\n nx " + nx + "\n ny " +ny + " \n dot " + dot;
if (dist < 16 && dot < 0)
{
//dot*=1.5;
vx -= nx * dot;
vy -= ny * dot;
if (dist < 15 && dot < 0)
{
dist = 16-dist;
cx += nx*dist;
cy += ny*dist;
}
}//endif
cx += vx;
cy += vy;
graphics.drawCircle(cx,cy, 16);
//graphics.drawCircle(px, py, 4);
graphics.moveTo(px,py);
graphics.lineTo(px+ny*256*2, py+nx*-256*2);
graphics.moveTo(px,py);
graphics.lineTo(px+ny*-256*2, py+nx*256*2);
graphics.moveTo(px,py);
graphics.lineTo(px+nx*16, py+ny*16);
}//onenter
}//classend
}