效果图:
组件类:
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
分享到:
相关推荐
flex实现了图片的拖拽功能,包括,拖动图片不删除原来图片,和拖动图片删除原来图片
分别用ArcGIS Flex API和SuperMap Flex API实现的军标箭头库,有需要源码的可回复邮箱索取。
动态实现多文件上传,基于flex技术,可以动态监控上传进度。
flex中默认的tab都是一行的,要使用多行的tab,可以参考这个例子的代码。
简洁的实现了在flex中实现背景音乐的功能
baidu语音识别 flex 版实现.包括如何使用第三方插件来脱离多媒体服务器实现录音功能.
Flex与Java实现通信,Flex与Java实现通信,Flex与Java实现通信
flex基础列子,利用flex技术实现计算器功能
flex datagrid 实现合计功能控件包 带源码,demo fxp是flex4的工程文件,导入到工作空间即可 直接导入项目即可。 更多访问我的blog www.dplayer.net
flex实现的翻书功能的网站漂亮的flex实现swf及源码绝对超值
完美解决Flex3 中 实现 图文混排 。
Flex 4.5 实现tree拖拽到任意组建 拖到tree datagrid中并得到目标的全部数据实现添加组建
初学flex4,自己实现的相册,下载下来即可运行看到效果的!
最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的...
flex实现简单浏览器,flex AIR中HTML控件实现了简单的网页浏览效果
这个肯定是没问题的,它当中提供了很多的方法。Flex确实很牛,效果也很好
此Demo是一个简单的flex项目,里面包括了flex 和J2ee的整合和一个flex 引擎搜索,跟Google效果一样
简洁实现flex中条形统计图,更加美观,适合初学者学习
flex实现 ComboBox中下拉checkbox 经测试好用,还有可移动面板,和可改大小面板实例
用Flex 实现的一个简单的计算器。基本上可以实现加减乘除操作。