flash on 2012-9-12
♥0 |
Line 67 |
Modified 2012-09-13 10:23:43 |
MIT License
archived:2017-03-30 02:52:16
ActionScript3 source code
/**
* Copyright tepe ( http://wonderfl.net/user/tepe )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/657m
*/
package {
import flash.display.*;
import flash.geom.*;
import flash.text.*;
import flash.events.*;
public class FlashTest extends Sprite {
private var s:Sprite = new Sprite();
private var tf:TextField = new TextField();
private var p1:Point = new Point();
private var r:Number = 100;
private var rot:Number = 0;
public function FlashTest() {
// write as3 code here..
addChild(s);
s.x = 200;
s.y = 200;
s.graphics.beginFill(0x00ff00);
s.graphics.drawRect(0,0,100,100);
s.graphics.endFill();
addChild(tf);
tf.text = "test";
addEventListener(Event.ENTER_FRAME,onFrame);
}
private function onFrame(e:Event):void{
aaa();
rot += Math.PI/180;
rot %= Math.PI*2;
p1.x = r*Math.cos(rot);
p1.y = r*Math.sin(rot);
tf.text = Math.atan2(p1.y,p1.x).toString();
tf.appendText("\n"+rot.toString());
}
private function aaa():void{
s.graphics.clear();
s.graphics.lineStyle(1,0xaaaaaa);
s.graphics.drawCircle(0,0,r);
s.graphics.moveTo(0,-300);
s.graphics.lineTo(0,300);
s.graphics.moveTo(-300,0);
s.graphics.lineTo(300,0);
//s.graphics.beginFill(0xff0000);
//s.graphics.drawCircle(p1.x,p1.y,5);
//s.graphics.endFill();
s.graphics.lineStyle(1,0xff0000);
s.graphics.moveTo(p1.x,0);
s.graphics.lineTo(p1.x,p1.y);
s.graphics.lineStyle(1,0x0000ff);
s.graphics.moveTo(0,0);
s.graphics.lineTo(p1.x,0);
s.graphics.lineStyle(1,0x00ff00);
s.graphics.moveTo(0,0);
s.graphics.lineTo(p1.x,p1.y);
s.graphics.lineStyle(1,0x333333);
draw_arc(s,0,0,r,0,rot);
draw_arc(s,0,0,r/8,0,rot);
}
public function draw_arc(movieclip:Sprite , center_x:Number, center_y:Number,
radius:Number, angle_from:Number, angle_to:Number, precision:Number=200):void{
var angle_diff:Number = angle_to-angle_from;
var steps:Number = Math.round(angle_diff*precision);
var angle:Number = angle_from;
var px:Number = center_x+radius*Math.cos(angle);
var py:Number = center_y+radius*Math.sin(angle);
movieclip.graphics.moveTo(px,py);
for (var i:int=1; i<=steps; i++) {
angle=angle_from+angle_diff/steps*i;
movieclip.graphics.lineTo(center_x+radius*Math.cos(angle),center_y+radius*Math.sin(angle));
}
}
}
}