flash on 2016-3-25
♥0 |
Line 68 |
Modified 2016-03-25 05:54:43 |
MIT License
archived:2017-03-20 16:21:14
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/GDmX
*/
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 prev:xNode;
a = new xNode(); a.cx = 230; a.cy = 230; vecNode.push(a);
a.ang = 1.57;
a.rad=32;
body = a;
a = new xNode(); a.wx=0; a.wy=-50; vecNode.push(a);
a.parent = body; arm = a;
a.wang = -1.57;
prev = a;
a = new xNode(); a.wx=40; a.wy=20; vecNode.push(a);
a.parent = prev;
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var gt:int = 0;
public var body:xNode;
public var arm:xNode;
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2, 0);
body.ang = 1.57 + Math.sin(gt*0.05)*0.5;
arm.wang = Math.sin((gt*0.05)+1.57)-1.57;
var a:xNode; var i:int; var num:int;
num = vecNode.length;
for (i = 0; i < num; i += 1)
{
a = vecNode[i];
if (a.parent != null)
{
setPos(a, a.wx, a.wy, a.parent.cx, a.parent.cy, a.parent.ang);
a.ang = a.parent.ang + a.wang;
}//endif
graphics.drawCircle(a.cx, a.cy, a.rad);// 8);
graphics.moveTo(a.cx, a.cy);
graphics.lineTo(a.cx + Math.cos(a.ang) * 8, a.cy + Math.sin(a.ang) * 8);
}//nexti
gt+=1;
}//onenter
public var vecNode:Vector.<xNode>;
public function setPos(a:xNode, ax:Number, ay:Number, tx:Number,ty:Number, ta:Number):void
{
var ux:Number; var uy:Number;
var vx:Number; var vy:Number;
var nx:Number; var ny:Number;
nx = Math.cos(ta); ny = Math.sin(ta);
ux = nx*ax; uy = ny*ax;
vx = -ny*ay; vy = nx*ay;
a.cx = tx + ux + vx; a.cy = ty + uy + vy;
}//setpos
}//classend
}
internal class xNode
{
public var rad:Number = 12;
public var cx:Number = 0;
public var cy:Number = 0;
public var ang:Number = 0;
public var parent:xNode = null;
public var wx:Number = 0;
public var wy:Number = 0;
public var wang:Number = 0;
}//xnode