flash on 2015-7-8
♥0 |
Line 63 |
Modified 2015-07-08 01:03:58 |
MIT License
archived:2017-03-30 11:45:47
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/vwSa
*/
package {
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public function distConst(a:xAct, b:xAct, rest:Number):void
{
graphics.moveTo(a.cx,a.cy);
graphics.lineTo(b.cx,b.cy);
var dx:Number; var dy:Number; var mag:Number;
dx = a.cx-b.cx; dy = a.cy -b.cy;
mag = Math.sqrt(dx*dx+dy*dy);
if (mag == 0) {mag=0.01;}
dx /=mag; dy/=mag;
mag = rest-mag; mag*=0.5;
dx*=mag; dy*=mag;
a.cx += dx; a.cy+=dy;
b.cx += -dx; b.cy+=-dy;
}//distconst
public function drawAct(a:xAct):void
{ graphics.drawCircle(a.cx,a.cy, 8); }
public var vecAct:Vector.<xAct>;
public var tempAct:xAct = new xAct();
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2,0);
if (vecAct == null)
{
vecAct = new Vector.<xAct>(0,false);
vecAct.push(new xAct());
vecAct.push(new xAct());
vecAct.push(new xAct());
vecAct.push(new xAct());
}//endif
var d:Number;
var mx:Number; var my:Number;
mx = stage.mouseX; my = stage.mouseY;
tempAct.cx = mx; tempAct.cy= my;
distConst(tempAct, vecAct[3],64);
d=32+16;
for (i=0;i<8;i++)
{
vecAct[0].cx = 230; vecAct[0].cy=230;
distConst(vecAct[2], vecAct[3],d);
distConst(vecAct[1], vecAct[2],d);
distConst(vecAct[0], vecAct[1],d);
}//nexti
var i:int; var num:int; num = vecAct.length;
for(i=0;i<num;i++)
{
drawAct(vecAct[i]);
}
}//onenter
}//classend
}
internal class xAct
{
public var cx:Number = 0;
public var cy:Number = 0;
}//xact