flash on 2016-10-31
♥0 |
Line 81 |
Modified 2016-10-31 03:29:00 |
MIT License
archived:2017-03-20 16:22:05
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/8xgd
*/
package {
import flash.ui.Keyboard;
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKdown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKup);
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public function onKdown(e:KeyboardEvent):void { vecKey[e.keyCode] = true; }
public function onKup(e:KeyboardEvent):void { vecKey[e.keyCode] = false; }
public var vecKey:Vector.<Boolean> = new Vector.<Boolean>(512, false);
public var cx:Number = 230;
public var cy:Number = 230;
public var ang:Number = 0;
public var x0:Number = 230;
public var y0:Number = 230;
public var x1:Number = 250;
public var y1:Number = 250;
public var x2:Number = 230;
public var y2:Number = 230;
public var u:Number = 0;
public var wx:Number = 0;
public var wy:Number = 0;
public var ts:int = 0;
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2, 0);
graphics.drawCircle(cx,cy, 8);
graphics.moveTo(cx,cy);
graphics.lineTo(cx+Math.cos(ang)*8, cy+Math.sin(ang)*8);
var ms:Number; ms = 0;
if (vecKey[Keyboard.UP] ) { ms = 0.1;}
if (vecKey[Keyboard.DOWN] ) { ms = -0.1; }
if (vecKey[Keyboard.LEFT] ) { ang-=0.1; }
if (vecKey[Keyboard.RIGHT] ) { ang+=0.1; }
// cx += Math.cos(ang) * ms;
// cy += Math.sin(ang) * ms;
u += ms;
x1 = x0 + Math.cos(ang)*32;
y1 = y0 + Math.sin(ang)*32;
wx = x0+(x1-x0)*u;
wy = y0+(y1-y0)*u;
graphics.drawCircle(x0,y0, 4);
graphics.drawCircle(x1,y1, 4);
graphics.drawCircle(wx,wy, 4);
graphics.drawCircle(x2,y2, 4);
cx = wx+(x2-wx)*0.5;
cy = wy+(y2-wy)*0.5;
graphics.drawCircle(cx,cy, 8);
var nx:Number; var ny:Number;
if (u >= 1.0)
{
u = 0;
x2 = x1; y2 = y1;
// x1 += Math.cos(ang)*16;
// y1 += Math.sin(ang)*16;
nx = Math.cos(ang)*16;
ny = Math.sin(ang)*16;
x1 = cx + (ts==1?-ny:ny);
y1 = cy + (ts==1?nx:-nx);
x0 = x1; y0 = y1;
// x1 = cx + Math.cos(ang)*16;
// y1 = cy + Math.sin(ang)*16;
x1 += Math.cos(ang)*32;
y1 += Math.sin(ang)*32;
ts = ts == 1? 0:1;
}
if(u < 0)
{
u += 1;
x2 = x0; y2 = y0;
// x1 = x0; y1 = y0;
// x0 -= Math.cos(ang)*16;
// y0 -= Math.sin(ang)*16;
nx = Math.cos(ang)*16;
ny = Math.sin(ang)*16;
x1 = cx + (ts==1?-ny:ny);
y1 = cy + (ts==1?nx:-nx);
x0 = x1; y0 = y1;
x0 -= Math.cos(ang)*16;
y0 -= Math.sin(ang)*16;
ts = ts == 1? 0:1;
}
}//onenter
}//classend
}