·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]AS3画正多边形源代码示例

时间:2013-03-29 23:21pgoy.co.uk
[AS3]AS3画正多边形源代码示例,绘制一个有填充颜色的正五边形,将多边形对象添加到舞台

调用方法:

  1. import Polygon; //引用脚本 
  2. var my_poly:Polygon=new Polygon(); //实例化一个多边形对象 
  3. /* 
  4. *drawPolygon(radius:int,segments:int,centerX:Number,
    centerY:Number,tint:uint,line:int,rotating:Number,fillColor:uint=0) 
  5. *radius: 边长, px为单位,正整数, 
  6. *segments:边的个数,正整数 
  7. *centerX: 中心点x坐标 
  8. *centerY: 中心点y坐标 
  9. *tint: 边颜色, 16进制数字 例如:0xFF0000 红色 
  10. *line: 边线宽度,px为单位 
  11. *rotating: 多边形旋转角度, 
  12. *fillColor: 填充颜色,16进制数字 不提供值时不填充。 
  13. * 
  14. */
  15.  
  16. my_poly.drawPolygon(100,7,300,200,0xFF0000,1,0); 
    //CuPlayer.com绘制一个无填充颜色的正七边形 
  17. my_poly.drawPolygon(100,5,300,200,0xFF0000,1,0,0x00FF00); 
    //CuPlayer.com绘制一个有填充颜色的正五边形 
  18. addChild(my_poly); //将多边形对象添加到舞台 
  1. package 
  2. { 
  3.     import flash.display.MovieClip; 
  4.     import flash.events.Event; 
  5.  
  6.     public class Polygon extends MovieClip 
  7.     { 
  8.         //CuPlayer.com PROPERTIES 
  9.         private var points:Array; 
  10.  
  11.         private var id:int; 
  12.         private var ratio:Number; 
  13.         private var top:Number; 
  14.  
  15.         //CuPlayer.com CONSTRUCTOR 
  16.         public function Polygon() 
  17.         { 
  18.             addEventListener(Event.ADDED_TO_STAGE,init); 
  19.         } 
  20.  
  21.         private function init(evt:Event):void 
  22.         { 
  23.             removeEventListener(Event.ADDED_TO_STAGE,init); 
  24.             stage.frameRate=30; 
  25.         } 
  26.  
  27.         //CuPlayer.com METHODS 
  28.         public function drawPolygon(radius:int,segments:int,
    centerX:Number,centerY:Number,tint:uint,line:int,rotating:Number,fillColor:uint=0):void 
  29.         { 
  30.             id=0; 
  31.             points=new Array(); 
  32.             ratio=360/segments; 
  33.             top=centerY-radius; 
  34.             if(fillColor!=0) 
  35.                 graphics.beginFill(fillColor); 
  36.             for(var i:int=rotating;i<=360+rotating;i+=ratio) 
  37.             { 
  38.                 var xx:Number=centerX+Math.sin(radians(i))*radius; 
  39.                 var yy:Number=top+(radius-Math.cos(radians(i))*radius); 
  40.                 points[id]=new Array(xx,yy); 
  41.                 switch(id) 
  42.                 { 
  43.                     case 0: 
  44.                         break; 
  45.                     case 1: 
  46.                         graphics.lineStyle(line,tint,1); 
  47.                         graphics.moveTo(points[id-1][0],points[id-1][1]); 
  48.                         graphics.lineTo(points[id][0],points[id][1]); 
  49.                         break; 
  50.                     default: 
  51.                     graphics.lineTo(points[id][0],points[id][1]); 
  52.                     //drawing(points[id-1][0],points[id-1][1],points[id][0],points[id][1],tint,line); 
  53.                 } 
  54.                 id++; 
  55.             } 
  56.             if(fillColor!=0) 
  57.                 graphics.endFill(); 
  58.             id=0; 
  59.         } 
  60.  
  61.         private function radians(n:Number):Number 
  62.         { 
  63.             return(Math.PI/180*n); 
  64.         } 
  65.  
  66.     } 
  67. } 
  68. //脚本代码结束 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器