// ActionScript file
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
[SWF(width=640, height=480, backgroundColor=0xf0f0e0, frameRate=30)]
public class Chap03_Test extends Sprite
{
private var m_cx:Number = 320;
private var m_cy:Number = 240;
private var m_rx:Number = 50;
private var m_ry:Number = 100;
private var m_radius:Number = 0;
private var m_speed:Number = 0.1;
private var m_ball:Ball;
private var m_line:Sprite;
private var m_tf:TextField;
public function Chap03_Test():void
{
init();
}
private function init():void
{
m_ball = new Ball();
m_ball.x = m_cx + Math.cos( m_radius ) * m_rx;
m_ball.y = m_cy + Math.sin( m_radius ) * m_ry;
stage.addChild( m_ball );
m_line = new Sprite();
m_line.graphics.lineStyle( 1 );
m_line.graphics.moveTo( m_ball.x, m_ball.y );
m_line.graphics.lineTo( stage.mouseX, stage.mouseY );
stage.addChild( m_line );
m_tf = new TextField;
m_tf.autoSize = TextFieldAutoSize.CENTER;
stage.addChild( m_tf );
stage.addEventListener( Event.ENTER_FRAME, onLoop );
}
private function onLoop( ev:Event ):void
{
m_ball.x = m_cx + Math.cos( m_radius ) * m_rx;
m_ball.y = m_cy + Math.sin( m_radius ) * m_ry;
m_radius += m_speed;
m_line.graphics.clear();
m_line.graphics.lineStyle( 1 );
m_line.graphics.moveTo( m_ball.x, m_ball.y );
m_line.graphics.lineTo( stage.mouseX, stage.mouseY );
var dx:Number = stage.mouseX - m_ball.x;
var dy:Number = stage.mouseY - m_ball.y;
m_tf.text = Math.sqrt( dx*dx + dy*dy ).toString();
}
}
}