当前位置: 首页 > 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个心理学法则》读书笔记
  • 【Linux系统编程】快速查找errno错误码信息
  • 【技术性】Search知识
  • 【译】理解JavaScript:new 关键字
  • Git 使用集
  • javascript 哈希表
  • JavaScript类型识别
  • Linux CTF 逆向入门
  • python_bomb----数据类型总结
  • React+TypeScript入门
  • V4L2视频输入框架概述
  • vue--为什么data属性必须是一个函数
  • 观察者模式实现非直接耦合
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 解析带emoji和链接的聊天系统消息
  • 扑朔迷离的属性和特性【彻底弄清】
  • 算法系列——算法入门之递归分而治之思想的实现
  • 微服务入门【系列视频课程】
  • 小试R空间处理新库sf
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 数据库巡检项
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #define与typedef区别
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #pragma once与条件编译
  • (003)SlickEdit Unity的补全
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (数据结构)顺序表的定义
  • (转)Linux下编译安装log4cxx
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .Net CF下精确的计时器
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net wcf memory gates checking failed
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48