【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 TKCB 于 2019-2-20 17:20 编辑
[Actionscript3] 纯文本查看 复制代码 //显示对象之二(shape类的应用)
package
{
import flash.display.Sprite;
import son.Star;
public class doc2 extends Sprite
{
private var _star:Star;
public function doc2()
{
_star = new Star(7,0x009900,40);
addChild(_star);
}
}
}
//自定义一个显示对象类:星形;
package son{
//导入Shape类
import flash.display.Shape;
//继承Shape类;
public class Star extends Shape{
//设置图形名字;
public var nam:String="5角星";
//构造函数中传入一系列参数;
//分别是图形的角数,颜色,内半径,外半径,旋转角度;
public function Star(s:int=5,c:uint=0xff0000,ir:Number=50,wr:Number=80,an:int=0):void{
//重命名图形;
nam=String(s)+"角星";
//设置线条样式;
this.graphics.lineStyle(2,0xffffff);
//设置填充颜色;
this.graphics.beginFill(c);
//画图;
initDraw(s,ir,wr);
//结束填充颜色;
this.graphics.endFill();
//旋转图形
initRo(an);
//移动注册点位置,以便把画出的图形全部显示出来;
this.x=this.y=wr;
}
//画图函数;
private function initDraw(sn:int,irn:Number,wrn:Number){
//定义一个变量,用来存放角度(弧度值);
var sa:Number=Math.PI/sn;
//定义一个变量,用来存放半径;
var ra:Number=wrn;
//从最右边的点画起;
this.graphics.moveTo(ra,0);
//借助for循环简化画图过程;
for(var i:int=1;i<=2*sn;i++){
//当i为奇数时ra为外圆半径,为偶数时ra为内圆半径;
i/2 is int?ra=wrn:ra=irn;
//借助三角函数找星形的顶点;
this.graphics.lineTo(ra*Math.cos(sa*i),ra*Math.sin(i*sa));
}
}
//让星形右边的角转到上面去,美观一些;
private function initRo(ann:Number){
this.rotation=-90+ann;
}
}
}
|