Two questions for you?
1. What is the purpose of this conditional? Seems to work without it
Actionscript Code:
if(m.d < 0) {
m.rotate(Math.PI);
d *= -1;
}
2. Why do you call CircleExample.WHATEVER everywhere? You can omit the CircleExample from all the const you've set up. for instance:
Actionscript Code:
package {
import flash.display.DisplayObject;
import flash.display.Shape;
import flash.display.Sprite;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.text.Font;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
public class CircleExample extends Sprite {
public var center:Point;
public static const TOTAL_ITEMS:uint = 60;
public static const RADIUS:Number = 100.0;
public static const ROTATION:Number = (2 * Math.PI) / TOTAL_ITEMS;
private var cont:Sprite;
private var myItem:Shape;
public function CircleExample() {
center = new Point(stage.stageWidth * .5, stage.stageHeight * .5);
var accumulator:Number = 0.0;
cont = new Sprite();
addChild(cont);
for (var i:int = 0; i < TOTAL_ITEMS; i++) {
myItem = new Shape();
myItem.graphics.beginFill(0x000000, 1);
myItem.graphics.drawRoundRect(0, 0, 20, 4, 4);
myItem.graphics.endFill();
addChild(myItem);
place(myItem, center, accumulator, RADIUS);
accumulator += ROTATION;
}
}
//center rotation distance
public function place(graphic:DisplayObject, c:Point, rot:Number, rad:Number):void {
var m:Matrix = graphic.transform.matrix;
m.translate(-graphic.width * 0.5, -graphic.height * 0.5);
m.rotate(rot);
m.translate(c.x + m.a * rad, c.y + m.b * rad);
graphic.transform.matrix = m;
}
}
}