flash on 2012-10-18
♥0 |
Line 102 |
Modified 2012-10-24 19:57:10 |
MIT License
archived:2017-03-30 22:57:40
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/2cNF
*/
package {
import flash.display.Graphics;
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest()
{
rect = new Sprite();
var g:Graphics;
g = rect.graphics;
g.clear();
g.lineStyle(2,0);
g.drawRect(-8,-32,16,64);
addChild(rect);
rect2 = new Sprite();
g = rect2.graphics;
g.clear();
g.lineStyle(2,0xFF0000);
g.drawRect(-8,-32,16,64);
addChild(rect2);
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var rect:Sprite;
public var rect2:Sprite;
public var wx:Number = 160;
public var wy:Number = 160;
public var wa:Number = 0;
public var bx:Number = 160;
public var by:Number = 160;
public var ba:Number = 0.15;
public var ww:int = 0;
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2, 0);
var px:Number;
var py:Number;
px = mouseX;
py = mouseY;
graphics.drawCircle(px,py, 8);
graphics.drawRect(wx-8, wy-8,16,16);
graphics.drawRect(bx-8,by-8,16,16);
graphics.moveTo(wx,wy);
graphics.lineTo(bx,by);
rect.x = wx;
rect.y = wy;
rect.rotation = wa * (180/3.1415);
rect2.x = bx;
rect2.y = by;
rect2.rotation = ba * (180/3.1415);
//bx = 180;
//ba = 0.5;
ww += 1;
if (ww >= 10)
{
wa = ba;
ba += 0.5;
ww = 0;
}
var dx:Number;
var dy:Number;
var rx:Number;
var ry:Number;
var jx:Number;
var jy:Number;
var tx:Number;
var ty:Number;
var da:Number;
var ra:Number;
da = -wa;
ra = -ba;
dx = px - wx;
dy = py - wy;
tx = Math.cos(da)*dx - Math.sin(da)*dy;
ty = Math.sin(da)*dx + Math.cos(da)*dy;
dx = tx;
dy = ty;
rx = px - bx;
ry = py - by;
tx = Math.cos(ra)*rx - Math.sin(ra)*ry;
ty = Math.sin(ra)*rx + Math.cos(ra)*ry;
rx = tx;
ry = ty;
//jx = dx - rx;
// jy = dy - ry;
jx = rx - dx;
jy = ry - dy;
graphics.moveTo(px,py);
graphics.lineTo(px+jx, py+jy);
var kx:Number;
var ky:Number;
var ka:Number;
kx = px - wx;
ky = py - wy;
ka = ba - wa;
var fx:Number;
var fy:Number;
fx = Math.cos(ka)*kx - Math.sin(ka)*ky;
fy = Math.sin(ka)*kx + Math.cos(ka)*ky;
kx = fx + bx;
ky = fy + by;
graphics.lineStyle(2, 0x0000FF);
graphics.drawCircle(kx,ky,8);
}//onenter
}//classend
}