23ImSCDq41zmXXmYUqtT0x changeset

Changeset663033316431 (b)
ParentNone (a)
ab
0+var radius: Number = 150;
0+var angle: Number = 0;
0+var totalNumbers: Number = 8;
0+var nx: Number;
0+var ny: Number;
0+
0+//
0+stage.scaleMode = StageScaleMode.NO_SCALE;
0+stage.align = StageAlign.TOP_LEFT;
0+
0+var bg: Sprite = new Sprite();
0+bg.graphics.beginFill( 0xCCCCCC, 1 );
0+bg.graphics.drawRect( 0, 0, radius * 2, radius * 2 );
0+bg.graphics.endFill();
0+addChild(bg);
0+
0+var circle: Sprite = new Sprite();
0+circle.graphics.lineStyle( 4, 0xFFFFFF, 1, true, "normal", CapsStyle.SQUARE, null, 3);
0+circle.graphics.beginFill( 0x888888, 1 );
0+circle.graphics.drawCircle( radius, radius, radius);
0+circle.graphics.endFill();
0+addChild(circle);
0+
0+var holder: Sprite = new Sprite();
0+holder.graphics.beginFill( 0xFF0000, 0 );
0+holder.graphics.drawRect( 0, 0, radius * 2, radius * 2 );
0+holder.graphics.endFill();
0+addChild(holder);
0+
0+
0+bg.x = Math.round((stage.stageWidth - bg.width) / 2);
0+bg.y = Math.round((stage.stageHeight - bg.height) / 2);
0+
0+circle.x = Math.round((stage.stageWidth - circle.width) / 2);
0+circle.y = Math.round((stage.stageHeight - circle.height) / 2);
0+
0+//
0+var c: Number = 0xFF0000;
0+for ( var i: Number=0; i < totalNumbers; i++ ) {
0+        var b: Sprite = new Sprite();
0+        if ( i > 0 && i < totalNumbers - 1) c = 0xFF0000;
0+        if ( i == totalNumbers - 1 ) c = 0x0000FF;
0+        b.graphics.beginFill( c, 1 );
0+        b.graphics.drawRect( 0, 0, 45, 50 );
0+        b.graphics.endFill();
0+
0+        // start in the middle of the top part of the circle with drawing blocks
0+        // first one is green, last one is blue
0+        angle = 180 - ( 360 / totalNumbers ) * i;
0+        nx = Math.sin( Math.PI / 180 * angle ) * ( ( radius - 4 ) + b.height );
0+        ny = Math.cos( Math.PI / 180 * angle ) * ( ( radius - 4 ) + b.height );
0+       
0+        // reposition the current block
0+        b.rotation = ( 180 - angle );
0+        b.x = ( nx + ( radius ) );
0+        b.y = ( ny + ( radius ) ) ;
0+        holder.addChild(b);
0+        trace("angle=" + angle );
0+}
0+
0+holder.x = bg.x;
0+holder.y = bg.y;
0+
0+var origin: Point = new Point( holder.x, holder.y );
0+var p: Point = new Point( origin.x + radius, origin.y + radius );
0+
0+var d: Number = 0;
0+this.addEventListener(Event.ENTER_FRAME,
0+function(e:Event):void {
0+        rotate(holder, 2, p );
0+});     
0+
0+// rotates target based on the given origin
0+function rotate(target:DisplayObject, angle:Number, op:Point) {
0+      var matrix: Matrix = target.transform.matrix;
0+      matrix.translate( -op.x, -op.y );
0+      matrix.rotate( angle * ( Math.PI/180 ) );
0+      matrix.translate( op.x, op.y );
0+      target.transform.matrix = matrix;
0+ }
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
--- Revision None
+++ Revision 663033316431
@@ -0,0 +1,80 @@
+var radius: Number = 150;
+var angle: Number = 0;
+var totalNumbers: Number = 8;
+var nx: Number;
+var ny: Number;
+
+//
+stage.scaleMode = StageScaleMode.NO_SCALE;
+stage.align = StageAlign.TOP_LEFT;
+
+var bg: Sprite = new Sprite();
+bg.graphics.beginFill( 0xCCCCCC, 1 );
+bg.graphics.drawRect( 0, 0, radius * 2, radius * 2 );
+bg.graphics.endFill();
+addChild(bg);
+
+var circle: Sprite = new Sprite();
+circle.graphics.lineStyle( 4, 0xFFFFFF, 1, true, "normal", CapsStyle.SQUARE, null, 3);
+circle.graphics.beginFill( 0x888888, 1 );
+circle.graphics.drawCircle( radius, radius, radius);
+circle.graphics.endFill();
+addChild(circle);
+
+var holder: Sprite = new Sprite();
+holder.graphics.beginFill( 0xFF0000, 0 );
+holder.graphics.drawRect( 0, 0, radius * 2, radius * 2 );
+holder.graphics.endFill();
+addChild(holder);
+
+
+bg.x = Math.round((stage.stageWidth - bg.width) / 2);
+bg.y = Math.round((stage.stageHeight - bg.height) / 2);
+
+circle.x = Math.round((stage.stageWidth - circle.width) / 2);
+circle.y = Math.round((stage.stageHeight - circle.height) / 2);
+
+//
+var c: Number = 0xFF0000;
+for ( var i: Number=0; i < totalNumbers; i++ ) {
+ var b: Sprite = new Sprite();
+ if ( i > 0 && i < totalNumbers - 1) c = 0xFF0000;
+ if ( i == totalNumbers - 1 ) c = 0x0000FF;
+ b.graphics.beginFill( c, 1 );
+ b.graphics.drawRect( 0, 0, 45, 50 );
+ b.graphics.endFill();
+
+ // start in the middle of the top part of the circle with drawing blocks
+ // first one is green, last one is blue
+ angle = 180 - ( 360 / totalNumbers ) * i;
+ nx = Math.sin( Math.PI / 180 * angle ) * ( ( radius - 4 ) + b.height );
+ ny = Math.cos( Math.PI / 180 * angle ) * ( ( radius - 4 ) + b.height );
+
+ // reposition the current block
+ b.rotation = ( 180 - angle );
+ b.x = ( nx + ( radius ) );
+ b.y = ( ny + ( radius ) ) ;
+ holder.addChild(b);
+ trace("angle=" + angle );
+}
+
+holder.x = bg.x;
+holder.y = bg.y;
+
+var origin: Point = new Point( holder.x, holder.y );
+var p: Point = new Point( origin.x + radius, origin.y + radius );
+
+var d: Number = 0;
+this.addEventListener(Event.ENTER_FRAME,
+function(e:Event):void {
+ rotate(holder, 2, p );
+});
+
+// rotates target based on the given origin
+function rotate(target:DisplayObject, angle:Number, op:Point) {
+ var matrix: Matrix = target.transform.matrix;
+ matrix.translate( -op.x, -op.y );
+ matrix.rotate( angle * ( Math.PI/180 ) );
+ matrix.translate( op.x, op.y );
+ target.transform.matrix = matrix;
+ }