flash on 2016-3-22
♥0 |
Line 61 |
Modified 2016-03-22 07:40:43 |
MIT License
archived:2017-03-20 16:21:16
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/QaZh
*/
package {
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
vecNode = new Vector.<xNode>(0, false);
var a:xNode; var i:int;
for (i=0;i<16;i+=1)
{ a = new xNode(); a.cx= 230+i*4; a.cy = 230; vecNode.push(a); }
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var vecNode:Vector.<xNode>;
public var ang:Number = 0;
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2, 0);
var i:int; var num:int; var a:xNode;
num=vecNode.length;
var k:int;
var ax:Number; var ay:Number;
var b:xNode;
var mx:Number; var my:Number;
mx = stage.mouseX; my = stage.mouseY;
ang +=0.03;
for (k=0;k<8;k+=1)
{
a = vecNode[num-1];
a.cx=230;a.cy=230;
a.cx = mx; a.cy=my;
// a.cx=230+Math.cos(ang)*64;
// a.cy=230+Math.sin(ang)*64;
b = vecNode[0];
//b.cx = stage.mouseX; b.cy = stage.mouseY;
// b.cx += (mx-b.cx)*0.2;
// b.cy += (my-b.cy)*0.2;
// b.cx = 230 + Math.cos(ang)*180;
// b.cy = 230 + Math.sin(ang)*Math.sin(ang)*180;
var t:Number; t=0.5;
t = Math.sin(ang)+1.57;
b.cx = a.cx + Math.cos(t)*180;
b.cy = a.cy + (Math.sin(t))*180;
// graphics.drawCircle(ax,ay,4);
// b.cx += (ax-b.cx)*0.2;
// b.cy += (ay-b.cy)*0.2;
for(i=1;i<num;i+=1)
{
a = vecNode[i];
ax = (b.cx-a.cx)*0.5;
ay = (b.cy-a.cy)*0.5;
// if (getMag(b.cx-a.cx,b.cy-a.cy)>16)
{ a.cx+=ax;a.cy+=ay;
b.cx-=ax; b.cy-=ay;
}
/*
var ta:Number;
ta = Math.atan2(b.cy-a.cy,b.cx-a.cx);
a.cx += Math.cos(ta);
a.cy+=Math.sin(ta);
b.cx -= Math.cos(ta);
b.cy -=Math.sin(ta);
*/
b=a;
}//nexti
}//nextk
for(i=0;i<num;i+=1)
{
a = vecNode[i];
graphics.drawCircle(a.cx,a.cy,8);
}//nexti
}//onenter
public function getMag(ax:Number,ay:Number):Number
{ return Math.sqrt(ax*ax+ay*ay); }
}
}
internal class xNode
{
public var cx:Number = 0;
public var cy:Number = 0;
}//xnode