Forked from: ay_caramba's forked from: forked from: うねうね diff:3 forked from: forked from: forked from: うねうね 移植してみた paccer forked:0favorite:0lines:66license : MIT License modified : 2009-08-31 22:23:51 Embed Tweet // forked from ay_caramba's forked from: forked from: うねうね // forked from gunte's forked from: うねうね // forked from 178ep3's うねうね //移植してみた package { import flash.display.Sprite; import flash.events.Event; import flash.geom.Point; public class Arm extends Sprite { private var _maxNum:uint = 30; private var _xList:Array = new Array(_maxNum); private var _yList:Array = new Array(_maxNum); private var _aList:Array = new Array(_maxNum); private var _length:Number = 40; private var _targetX:Number; private var _targetY:Number; public function Arm() { for(var i:uint=0; i<_maxNum; i++) { _xList[i] = 0; _yList[i] = 0; _aList[i] = 0; } _yList[_maxNum-1] = stage.stageHeight; addEventListener(Event.ENTER_FRAME,loop); } private function loop(e:Event):void { this.graphics.clear(); Angle(0,mouseX,mouseY); var i:uint; for(i=1; i<_maxNum; i++) { Angle(i,_targetX,_targetY); } for(i=_maxNum-1; i>=1; i--) { Position(i,i-1); } for(i=0; i<_maxNum; i++) { draw(_xList[i],_yList[i],_aList[i],(i+1)*2,i); } } private function Angle(i:uint, _x:Number, _y:Number):void { var dx:Number = _x - _xList[i]; var dy:Number = _y - _yList[i]; _aList[i] = Math.atan2(dy,dx); _targetX = _x - Math.cos(_aList[i]) * _length; _targetY = _y - Math.sin(_aList[i]) * _length; } private function Position(a:uint,b:uint):void { _xList[b] = _xList[a] + Math.cos(_aList[a]) * _length; _yList[b] = _yList[a] + Math.sin(_aList[a]) * _length; } private function draw(_x:Number, _y:Number, _a:Number, _s:Number,i:uint):void { this.graphics.lineStyle(_s,0x000000,0.5); this.graphics.moveTo(_x,_y); var p:Point = Point.polar(_length,_a); this.graphics.lineTo(p.x+_x ,p.y+_y); this.graphics.endFill(); } } } Code Fullscreen Preview Fullscreen Point.polar Math.atan2 mouseY mouseX Math.cos Math.sin Array addEventListener Event.ENTER_FRAME Point uint Event Sprite Number sort new page view favorite forked pv2347 forked from: forked from: fork.. hacker_kdf9a0nu forked:0 favorite:3lines:66 (diff:1) tag: IK LIKE