当前位置: 首页 > news >正文

flex教程:一个虚线画法实例

 

本文用到两个文件:dashLine.mxml 和 MyDashLine.as

dashLine.mxml调用MyDashLine.as

1、dashLine.mxml

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="myInit();">

<mx:Script>

   <![CDATA[

     private function myInit():void{

         var myDashLine:MyDashLine = new MyDashLine();

         this.addChild(myDashLine.myInit(2, 0xFF0000, 0.9, 100, 100, 600, 500, 5, 30, 25));

         this.addChild(myDashLine.myInit(2, 0xFF00FF, 0.3, 100, 500, 600, 100, 10, 30, 25));

     }

           

   ]]>

</mx:Script>



</mx:Application>

 

2、MyDashLine.as

package{

import flash.display.Graphics;

import flash.display.Sprite;

import flash.geom.Point;



import mx.core.UIComponent;



public class MyDashLine extends UIComponent{

        private var lines:Sprite = new Sprite();

        private var component:UIComponent = new UIComponent();

       

   public function MyDashLine(){

      lines = new Sprite();

      component = new UIComponent();

   }

  

        /*myInit()函数参数注解:

         * 1、shuliang    虚线的条数

         * 2、lineColor   虚线的颜色

         * 3、lineAlpha   虚线的alpha值

         * 4、fromX       虚线起始点的x轴的值

         * 5、fromY       虚线起始点的y轴的值

         * 6、toX         虚线末点的x轴的值

         * 7、toY         虚线末点的y轴的值

         * 8、pointWidth 单个点的厚度

         * 9、pointLength 单个点的长度

         * 10、twoPointDistance 两个点之间的间隔

         * 

        */

        public function myInit(shuliang:Number, lineColor:uint, lineAlpha:Number, fromX:Number, fromY:Number, toX:Number, toY:Number, pointWidth:Number, pointLength:Number, twoPointDistance:Number):UIComponent{

            drawDashed(lines.graphics, lineColor, lineAlpha, new Point(fromX, fromY), new Point(toX, toY), pointWidth, pointLength, twoPointDistance);

            return component;

        }

        

        private function drawDashed(graphics:Graphics, lineColor:uint, lineAlpha:Number, p1:Point, p2:Point, pointWidth:Number, pointLength:Number, twoPointDistance:Number):void{

            graphics.lineStyle(pointWidth, lineColor, lineAlpha);

            var max:Number = Point.distance(p1, p2);

            var dis:Number = 0;

            var p3:Point;

            var p4:Point;

            while(dis < max){

                p3 = Point.interpolate(p2, p1, dis / max);

                dis += pointLength;

                if(dis > max){

                    dis = max;

                }

                p4 = Point.interpolate(p2, p1, dis / max);

                lines.graphics.moveTo(p3.x, p3.y);

                lines.graphics.lineTo(p4.x, p4.y);

                dis += twoPointDistance;

           }

           component.addChild(lines);

        }

  

}

}

 

转自:http://www.jinflex.com/index.php/archives/95

 

相关文章:

  • git分支小问题
  • flex教程:flex4破解,以及序列号防止过期
  • flex教程:内存使用机巧
  • 几个简单的数字问题引发的对计算机逻辑的浅显思考,细思有味。新手帖,高手勿砖。...
  • The declared package XX does not match the expected package src.main.java.XX
  • 常用的文件和目录操作命令(转)
  • 算法面试题:寻找数组中重复的数字
  • Java基础——九种基本数据类型,及其封装类
  • 代码同时上传到github和码云
  • maven install出现 找不到符号问题
  • 算法面试题: 斐波那契数列
  • dubbo-springMVC-idea-mac开发环境搭建part3-nexus安装配置(maven私库)
  • 算法面试题:整数反转
  • 算法面试题:多数元素
  • 《改变你一生的108个心理学法则》读书笔记
  • 5、React组件事件详解
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • JS实现简单的MVC模式开发小游戏
  • Objective-C 中关联引用的概念
  • php的插入排序,通过双层for循环
  • - 概述 - 《设计模式(极简c++版)》
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 十年未变!安全,谁之责?(下)
  • 微服务核心架构梳理
  • 学习JavaScript数据结构与算法 — 树
  • ​520就是要宠粉,你的心头书我买单
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #pragam once 和 #ifndef 预编译头
  • #Z2294. 打印树的直径
  • $$$$GB2312-80区位编码表$$$$
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (算法)求1到1亿间的质数或素数
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .net 7 上传文件踩坑
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net生成的类,跨工程调用显示注释
  • .Net中的设计模式——Factory Method模式
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [ SNOI 2013 ] Quare
  • [C++]模板与STL简介
  • [go] 策略模式
  • [IDF]摩斯密码
  • [k8s系列]:kubernetes·概念入门
  • [NISACTF 2022]join-us
  • [node]Node.js 模块系统
  • [NOI2005]月下柠檬树[计算几何(simpson)]