<?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>