`

flex标尺的实现

    博客分类:
  • Flex
 
阅读更多

效果图:



 组件类:

package org.forever.report.view
{
	import flash.geom.Point;
	
	import mx.controls.Text;
	import mx.graphics.SolidColorStroke;
	
	import spark.components.BorderContainer;
	import spark.primitives.Line;
	
	public class Ruler extends BorderContainer
	{
		private var _horizontalTrunkLine:Line;
		private var _horizontalLength:Number = 3000;
		private var _verticalTrunkLine:Line;
		private var _verticalLength:Number = 3000;
		
		public function Ruler()
		{
			this.alpha = 0.5;
			this.setStyle("borderColor","red");
			this.width = 0;
			this.height = 0;
			_horizontalTrunkLine = new Line();
			_horizontalTrunkLine.stroke = new SolidColorStroke(0x000000);
			this.x = 0;
			this.y = 0;
			_horizontalTrunkLine.xFrom = 25;
			_horizontalTrunkLine.yFrom = 25;
			_horizontalTrunkLine.xTo = _horizontalTrunkLine.xFrom + _horizontalLength;
			_horizontalTrunkLine.yTo = _horizontalTrunkLine.yFrom;
			this.addElement(_horizontalTrunkLine);
			
			for(var i:Number=0;i<_horizontalLength/5;i++){
				var _line:Line = new Line();
				var _ySpacing:Number = 5;
				_line.stroke = new SolidColorStroke(0x000000);
				_line.xFrom = i * 5 + _horizontalTrunkLine.xFrom;
				_line.yFrom = _horizontalTrunkLine.yFrom;
				_line.xTo = _line.xFrom;
				if(i%10==0){
					_ySpacing = 20;	
					var _label:spark.components.Label = new spark.components.Label();
					_label.text = String(i * 5);
					_label.x = i * 5 + _horizontalTrunkLine.xFrom+1;
					_label.y = _horizontalTrunkLine.yFrom - _ySpacing;
					this.addElement(_label);
					
				}else if(i%5==0){
					_ySpacing = 10;
				}
				_line.yTo = _horizontalTrunkLine.yFrom - _ySpacing;
				this.addElement(_line);
			}
			
			_verticalTrunkLine = new Line();
			_verticalTrunkLine.stroke = new SolidColorStroke(0x000000);
			
			_verticalTrunkLine.xFrom = 25;
			_verticalTrunkLine.yFrom = 25;
			_verticalTrunkLine.xTo = _verticalTrunkLine.xFrom;
			_verticalTrunkLine.yTo = _verticalTrunkLine.yFrom + _verticalLength;
			this.addElement(_verticalTrunkLine);
			
			for(var j:Number = 0;j<_verticalLength/5;j++){
				var _xSpacing:Number = 5;
				var _lineV:Line = new Line();
				_lineV.stroke = new SolidColorStroke(0x000000);
				if(j%10==0){
					_xSpacing = 20;
					var _labelV:spark.components.Label = new spark.components.Label();
					_labelV.text = String(j * 5);
					_labelV.x = (_verticalTrunkLine.xFrom - _xSpacing)*3;
					_labelV.y = j * 5+1 + + _verticalTrunkLine.yFrom;
					_labelV.rotation = 90;
					this.addElement(_labelV);
				}else if(j%5==0){
					_xSpacing = 10;
				}
				_lineV.xFrom = _verticalTrunkLine.xFrom - _xSpacing;
				_lineV.yFrom = j * 5 + _verticalTrunkLine.yFrom;
				_lineV.xTo = 25
				_lineV.yTo = j * 5 + _verticalTrunkLine.yFrom;
				this.addElement(_lineV);
			}
			
		}
	}
}

 测试类:

<?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" minWidth="955" minHeight="600" xmlns:view="org.forever.report.view.*">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<view:Ruler x="0" y="0">
	</view:Ruler>
</s:Application>
 
  • 大小: 4 KB
0
0
分享到:
评论

相关推荐

    Flex画板实现~

    Flex画板实现主要涉及到的是Adobe Flex技术,这是一种用于构建富互联网应用程序(RIA)的开源框架。Flex使用MXML和ActionScript编程语言,基于Flash Player或Adobe AIR运行时环境,能够创建交互性强、视觉效果丰富的...

    flexDemo实现引擎搜索

    FlexDemo实现引擎搜索是一个以Adobe Flex技术为核心的项目,它展示了如何与Java 2 Enterprise Edition (J2EE)平台集成,创建一个类似于Google的搜索引擎。在这个Demo中,我们可以通过使用Flex前端展示用户界面,同时...

    ArcGIS Flex API和SuperMap Flex API实现的军标箭头库

    本项目聚焦于使用Flex API,一种基于Adobe Flex的开发框架,来实现军标箭头库的构建。这涉及到Web GIS应用的开发,以及如何将军事符号标准(例如北约军标)与地图服务相结合。 首先,ArcGIS Flex API是由Esri公司...

    flex4实现的简单相册实例

    在这个"flex4实现的简单相册实例"中,我们可以深入探讨Flex4在创建相册应用中的关键知识点。 1. **Flex SDK与Flash Builder**:Flex SDK是开发Flex应用的基础,包含了编译器和Flex框架库。而Flash Builder是一款...

    携程网首页主要利用flex布局实现

    本教程将深入探讨携程网首页如何利用Flex布局实现,以及Flex布局的基本概念和使用技巧。 Flex布局是CSS3中的一项新特性,旨在解决复杂的单行和多行布局问题,尤其是在不同屏幕尺寸和设备上保持良好的响应式表现。其...

    flex实现的翻书功能的网站漂亮的flex实现swf及源码

    在本案例中,"flex实现的翻书功能的网站漂亮的flex实现swf及源码",显然指的是使用Flex技术创建了一个模拟真实书籍翻页效果的交互式Web应用。这个应用不仅提供了视觉上的吸引力,还具有高度的用户参与度,让浏览者...

    flex中实现背景音乐的办法

    简洁的实现了在flex中实现背景音乐的功能

    Flex3实现的谷歌地图实例

    在本实例中,"Flex3实现的谷歌地图实例" 是一个利用Flex3框架来展示谷歌地图的应用。开发者通过学习并实践网上的GoogleMap教程,创建了这个项目,以便于理解和掌握如何在Flex环境中集成和操作谷歌地图API。 首先,...

    baidu语音识别 flex 版实现

    在本文中,我们将深入探讨如何在Flex环境中实现百度语音识别功能。Flex是一种基于ActionScript的开源框架,用于构建富互联网应用程序(RIA)。结合百度的语音识别API,我们可以为用户提供便捷的语音输入体验。 首先...

    Flex实现的xmpp消息发送接收

    在这个特定的场景中,"Flex实现的xmpp消息发送接收"是指使用Flex技术来实现在Android、iOS等移动设备以及IE浏览器上的即时通讯功能。 XMPP(Extensible Messaging and Presence Protocol)是一种开放标准的协议,...

    flex布局Flex实现常见布局的汇总

    一类是给flex容器设置的,一类是给flex子元素设置的,本文在介绍一些典型场景实现的同时也会顺带讲解部分属性,当然更详细的内容可以阅读MDN上的教程。接下来需要使用到flex-grow属性,这个是flex子元素上的属性,...

    Flex实现打印预览

    在Flex中实现打印预览功能可以帮助用户在正式打印前检查文档布局和格式,确保打印效果符合预期。以下是对Flex中实现打印预览功能的详细解释: 一、Flex中的打印服务 Flex内置了`flash.printing.PrintJob`类,提供了...

    Flex万年历记事本_flex源码

    "Flex万年历记事本"是一个使用Flex技术实现的项目,它结合了日历功能和记事本特性,为用户提供了一种方便的方式来管理和记录日常生活中的事务。 在Flex源码中,我们可以期待看到以下几个关键知识点: 1. **MXML与...

    flex datagrid 实现合计功能控件包

    flex datagrid 实现合计功能控件包 带源码,demo fxp是flex4的工程文件,导入到工作空间即可 直接导入项目即可。 更多访问我的blog www.dplayer.net

    Flex实现的计算器

    在这个"Flex实现的计算器"项目中,开发者使用了Adobe Flex来设计和开发一个基本的计算器,具备进行基本数学运算如加、减、乘、除的功能。 1. **Flex框架介绍** Flex提供了MXML和ActionScript两种编程语言,其中...

    flexwheel flex实现的图片滚动效果

    "Flexwheel"是基于Flex实现的一种特定组件,主要用于创建图片滚动和时间滚动的效果。这种效果常用于增强用户体验,尤其是在展示大量信息或者产品图片时,能够以吸引人的方式呈现内容。 首先,我们要理解什么是Flex...

    myeclipse为web项目添加flex并实现与java通信

    本项目"myeclipse为web项目添加flex并实现与java通信"展示了一个使用MyEclipse集成开发环境(IDE)构建的Web应用程序,其中Flex用于前端用户界面的设计,而Java则作为后端提供数据和服务。以下将详细介绍这一技术...

    flex实现边框

    总之,使用Flex实现边框和标题主要涉及设置组件属性、使用CSS、自定义AS类以及应用皮肤。通过灵活组合这些方法,你可以创建出满足各种需求的富界面组件。在实际项目中,理解并熟练运用这些技术将极大地提升你的Flex...

    Flex3 中 实现 图文混排

    完美解决Flex3 中 实现 图文混排 。

    flex实现旋转效果

    在本文中,我们将深入探讨如何使用Flex来实现一个图片旋转效果,这在产品展示或交互式界面设计中非常常见。Flex是一种强大的、基于XML的框架,用于构建富互联网应用程序(RIA),尤其适用于创建动态、响应式的用户...

Global site tag (gtag.js) - Google Analytics