CircleIndicator
♥0 |
Line 66 |
Modified 2009-07-14 21:39:09 |
MIT License
archived:2017-03-20 02:12:01
ActionScript3 source code
/**
* Copyright ayataka ( http://wonderfl.net/user/ayataka )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/5xbp
*/
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.geom.*;
[SWF(width="300", height="300")]
public class FlashTest extends Sprite {
private var cb:Sprite = new Sprite();
private var cc:Sprite = new Sprite();
private var c:Sprite = new Sprite();
private var tf:TextField = new TextField();
private var isLButtonDown:Boolean = false;
private var offsetY:Number = 150;
private var cAngle:Number = -90;
private var tAngle:Number = 180;
public function FlashTest() {
//
this.addChild( cb );
cb.transform.perspectiveProjection=new PerspectiveProjection()
cb.transform.perspectiveProjection.projectionCenter = new Point(150, 0);
cb.transform.perspectiveProjection.focalLength;
cb.transform.perspectiveProjection.fieldOfView = 45;
//
with( cc.graphics ) {
lineStyle(2, 0x000000);
drawCircle(0, 0, 100);
moveTo(-110, 0);
lineTo(110, 0);
moveTo(0, -110);
lineTo(0, 110);
lineStyle();
}
for(var i:int = 0; i < 2; ++i) {
var s:Sprite = new Sprite();
with( s.graphics ) {
lineStyle(2, 0xFF0000 >> i * 8);
drawCircle(0, 0, 100);
lineStyle();
}
cc.addChild( s );
s.rotationY = 60 * (i + 1);
}
//
cb.addChild( cc );
cc.x = 150;//this.width / 2;
cc.y = offsetY;//this.height / 2;
//
with( c.graphics ) {
beginFill( 0x0000FF );
drawCircle(0, 0, 100);
endFill();
}
cc.addChild( c );
c.alpha = 0.7;
c.rotationX = 90;
//
this.addChild( tf );
//
this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(event:Event):void {
//
//c.y = this.mouseY - offsetY;
if( (tAngle - cAngle) < 1 ) {
tf.text = "Complete";
cAngle = tAngle;
}
else {
cAngle += (tAngle - cAngle) / 20;
}
c.y = Math.sin( cAngle / 180 * Math.PI ) * 100;
///*
//c.y = this.mouseY - 150;
var h:Number = c.y;
var rate:Number = Math.cos( Math.asin( h / 100 ) );
c.scaleX = rate;
c.scaleY = rate;
//*/
//tf.text = String( cb.transform.perspectiveProjection.focalLength );
}
}
}