自定义星形类
as3代码如下:
package {
import flash.display.Sprite;
import flash.display.Graphics;
public class Star extends Sprite {
private var RR:Number;
private var rr:Number;
private var num:int;
private var xx:Number;
private var yy:Number;
private var lineColor:uint;
private var fillBl:Boolean;
private var fillColor:uint;
private var bl:Boolean=false;
public function Star(num:int=5,R:Number=50,r:Number=20,lineColor:uint=0xff0000,
fillBl:Boolean=false,fillColor:uint=0xff0000) {
if (num<=1) {
trace(“星形类的第一个参数至少为2″);
return;
}
this.num=num;
this.RR=R;
this.rr=r;
this.lineColor=lineColor;
this.fillBl=fillBl;
this.fillColor=fillColor;
init();
}
private function init() {
this.graphics.lineStyle(1,lineColor);
fillBl==true?this.graphics.beginFill(this.fillColor):0;
//当fillBl为true时,有填充色
this.graphics.moveTo(rr,0);
for (var i:int=1; i<=(num*2); i++) {
bl==false?[xx=RR*Math.cos(i*Math.PI*2/(num*2)),yy=RR*Math.sin(i*Math.PI*2/(num*2))]:[xx=rr*Math.cos(i*Math.PI*2/(num*2)),yy=rr*Math.sin(i*Math.PI*2/(num*2))];
this.graphics.lineTo(xx,yy);
bl=! bl;
}
this.num%2!=0?this.rotation=90:0;//如果星形数是单的,则让其正放,+90度
}
}
}
没有评论 ▼