http://hi.baidu.com/wh576817652/blog/item/98183b2542c9fe29c9955950.html
首先我想说的是,我以前认为flex很强大,flash会的它全会,flash不会的它也会,但是我一直纳闷flex为什么不能画图呢?怎么简单的功能,为什么没有呢,原来我错了,它有,就是path。
skinClass中绘制多边形使用Path标签,把绘制路径放在data属性里。
如:<s:Path data="M0 0L10 10Z"/>
在编写绘制路径时,会用到一些控制关链字,这是必须了解的。
M(x,y):移动到点(x,y)。
Z:结束并关闭路径(路径最后的点会画一条直线到路径起启点)。
L(x,y):画一条直线到点(x,y)(一般和M一起使用,见下面例子)。
C(x1,y1,x,y,x2,y2):从(x1,y1)画一条弧线到(x2,y2),(x,y)为弧度控制点(|x1-x|=弧y轴半径,|y-y2|=弧x轴半径,当弧y轴半径=弧x轴半径时,此弧为圆弧)。
以下是一个简单的例子,绘制的都是一些基础图形,复杂图形也都是由基础图形构成的:
<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Metadata>
[HostComponent("spark.components.SkinnableContainer")]
</fx:Metadata>
<fx:Script>
<![CDATA[
import mx.graphics.SolidColorStroke;
[Bindable]
private var stroke:SolidColorStroke = new SolidColorStroke(0xfff000, 2);
]]>
</fx:Script>
<s:states>
<s:State name="normal" />
<s:State name="disabled" />
</s:states>
<s:HGroup gap="50">
<s:VGroup>
<!--横线-->
<s:Path data="M0 0L60 0Z" stroke="{stroke}"/>
<!--竖线-->
<s:Path data="M0 0L0 60Z" stroke="{stroke}"/>
<!--右45度斜线-->
<s:Path data="M0 0L60 60Z" stroke="{stroke}"/>
<!--左45度斜线-->
<s:Path data="M0 60L60 0Z" stroke="{stroke}"/>
<!--虚线-->
<s:Path data="M0 0L10 0Z M20 0L30 0Z M40 0L50 0Z M60 0L70 0Z" stroke="{stroke}"/>
<!--1/4圆弧-->
<s:Path data="C0 0 0 60 60 60" stroke="{stroke}"/>
</s:VGroup>
<s:VGroup>
<!--正方形-->
<s:Path data="M0 0 60 0 60 60 0 60Z" stroke="{stroke}"/>
<!--三角形-->
<s:Path data="M0 0 60 0 30 40Z" stroke="{stroke}"/>
<!--半圆形-->
<s:Path data="C0 0 0 30 30 30 30 30 60 30 60 0Z" stroke="{stroke}"/>
<!--叶形-->
<s:Path data="Q0 0 0 30 30 30 30 30 60 30 60 0 60 -30 30 -30 0 -30 0 0" stroke="{stroke}"/>
<!--五角星-->
<s:Path data="M31.0376 1.17676L40.3076 20.9272 61.0376 24.0947 46.0376 39.4683 49.5786 61.1768 31.0376 50.9272 12.4966 61.1768 16.0376 39.4683 1.0376 24.0947 21.7676 20.9272 31.0376 1.17676Z" stroke="{stroke}"/>
</s:VGroup>
</s:HGroup>
</s:Skin>
较果如下:

相信大家绝大多数都是找到得这个,但是这里面的东西太少了,而且C讲解的很不清楚,其实(x、y)是(x1,y1)、(x2,y2)两点的切线的交点。至于弧半径呢,我就不说了,就是半径。当然除了这些以外,还有一些复杂点的,不啰嗦,放不下了,见下篇文章
分享到:
相关推荐
下面将详细解释`Flex Wkt转Geometry操作类`的知识点,并提供如何实现这个转换的方法。 1. **Well-Known Text (WKT)** WKT是由OGC(开放地理空间联盟)定义的一种标准格式,用于在文本中表示地理空间几何对象。例如...
('path_to_your_image')" /> ``` 然后,我们可以创建一个`Animate`对象,指定旋转的属性,如`rotation`,并设置一个重复的动画行为: ```mxml ``` 这将使图片每两秒(`duration="2000"`表示2000毫秒)自动...
在“首选项”>“Flex Build Path”>“Library Path”中,点击“新建”,指向你解压的Flex SDK目录。 **创建第一个FLEX项目** 1. 启动FLEX Builder后,选择“文件”>“新建”>“Flex项目”。 2. 输入项目名称,选择...
1. **通过Flex Build Path**:在你的主应用项目中,打开“Properties”(属性),然后选择“Flex Build Path”(Flex构建路径)。在“Library Path”(库路径)选项卡中,点击“Add SWC...”(添加SWC...),浏览到...
- 配置系统环境变量中的`Path`,添加`%JAVA_HOME%\bin`到系统`Path`中。 ##### 2. 安装Tomcat - **版本选择**:选择安装Tomcat 5.5.6版本。尽管这是一个较老的版本,但在当时环境下可能是必需的。 - **安装路径**...
这通常通过JavaScript库或CSS3的clip-path属性来实现,与Flexbox结合使用可以提供更好的布局控制。当用户想要查看产品图像的细节时,局部放大功能非常实用。 综上所述,这些知识点涉及到如何使用Flexbox布局模型来...
使用 SvgPath 类可以将 SVG 文件转换为 Flex 可以识别的格式,然后生成图片。SvgPath 类提供了 show 方法,可以将 SVG 文件显示出来。 六、Flex 与 SVG 的集成 Flex 与 SVG 的集成可以实现动态加载 SVG 图片。使用...
3. 配置环境变量:安装完成后,为了能在命令行中直接运行flex命令,你需要将Flex的bin目录添加到系统的PATH环境变量中。这通常包括找到安装目录,例如`C:\Program Files\flex-2.5.4a\bin`,然后将其添加到PATH变量。...
4. 在“Flex Build Path”选项中,可以配置所需的库(如SWC文件)。 5. 完成配置后,点击“Finish”创建项目。 五、编写Flex代码 1. 在新建的Flex项目中,右键点击“src”目录,选择“New” -> “ActionScript ...
4. **配置构建路径**: 在项目中,右键选择"Build Path" -> "Configure Build Path",在Libraries选项卡中添加所需的Flex SDK。 5. **集成ActionScript和MXML编辑器**: Eclipse会自动识别Flex Builder的编辑器,使得...
4. **配置库路径**:在Flex工程属性中选择Flex Build Path,然后在Library Path选项卡下添加ARCGIS API FOR FLEX的相关库文件,确保项目能够识别并使用API。 #### 地图创建与交互 文档进一步深入到地图创建的过程...
继续在项目属性窗口中,选择 “Flex Build Path” -> “Libraries”,点击 “Add Library” 按钮添加所需的 Flex SDK 和其他依赖库。 4. **部署项目到 Tomcat** 在 MyEclipse 中配置好 Tomcat 服务器后,右键...
安装完成后,bison和flex的可执行文件将添加到系统的PATH环境变量中,可以直接在命令行使用。 **在Linux下的安装** 对于Linux用户,bison和flex通常可以通过包管理器(如apt、yum或dnf)轻松安装。例如,在Ubuntu或...
在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。FlashPaper则是Adobe公司推出的一款工具,它能够将文档转换为交互式的Flash格式,使得用户可以在Web上...
用户还可以通过项目设置的Flex Build Path添加更多库文件或使用不同版本的Flex SDK。 使用TWaver Flex时,需要在应用程序的XML命名空间中引用TWaver库,即添加`xmlns:tw=...
3. **编写编译任务**:在`compile`任务中,通过调用`mxmlc.jar`(Flex SDK中的编译器)来进行Flex代码的编译,并设置必要的参数,如`-load-config+=flex-config.xml`用于加载配置文件,`-source-path.`指明源代码...
在Flex Builder中,这可以通过右键点击项目->属性->Flex Build Path->Library Path来实现。 2. **导入类**:如果SWC中包含ActionScript类,可以在代码中通过import语句导入并使用。 3. **使用组件**:如果SWC包含...
开发者通常会将其添加到环境变量PATH中,以便在命令行中直接调用Flex编译器。此外,可以与IDE如Flash Builder或IntelliJ IDEA集成,实现代码编辑、调试和构建的便捷性。 4. **主要组件** - **Flex Compiler**:...
例如,`菜单项" icon="@Embed('path/to/icon.png')"/>`,这里的@Embed用于内联资源,将图标文件嵌入到应用中。 4. **事件处理**:为每个MenuItem添加点击事件监听器,以便在用户选择菜单项时执行相应的功能。 5. **...
在项目中右键选择“Properties” -> “Java Build Path” -> “Libraries”。 3. 点击“Add Jars”按钮,浏览并选择FlexBuilder安装目录中的相关JAR文件,例如`frameworks.jar`等。 4. 确认添加后,点击“Apply ...