actionscript 绘制环形(中空)图形
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:supportClasses="com.esri.ags.skins.supportClasses.*"
minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout />
</s:layout>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
// 利用flex 的缠绕规则 做中空多边形 相见《flash_as3_中文帮助》278页
var commands:Vector.<int>=new Vector.<int>();
var lineto:int=GraphicsPathCommand.LINE_TO; //命令:画线到
var moveto:int=GraphicsPathCommand.MOVE_TO; //命令:移动到
commands.push(moveto,lineto,lineto,lineto,lineto);
commands.push(moveto,lineto,lineto,lineto,lineto);
var datas:Vector.<Number>=new Vector.<Number>();
datas.push(50,50, 50,400, 400,400, 400,50, 50,50); //图形1 逆时针描述路径
datas.push(200,200, 200,100, 300,100, 300,300, 200,300); //图形2 顺时针描述路径
apn. graphics.beginFill(0xff0000);
//GraphicsPathWinding.NON_ZERO 相交处不填充
apn. graphics.drawPath(commands,datas,GraphicsPathWinding.NON_ZERO);
apn. graphics.endFill();
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:SolidColorStroke color="0xff0000" weight="2" id="stroke" />
</fx:Declarations>
<!--<s:Path data="M0 0 60 0 60 60 0 60Z" stroke="{stroke}"/>-->
<s:Group width="200" height="200" id="apn" creationComplete="application1_creationCompleteHandler(event)"/>
<mx:Text text="测试" x="250" y="250" />
</s:Application>