Flex中,进度条的皮肤,以及使用Timer让它自动增加~

mxml中:

 <mx:ProgressBar id="proBar"
verticalCenter="0"
horizontalCenter="0"
trackSkin="probar.borderskin"
fontSize="12"
height="24"
color="#336699"
label="正在加载..."
labelPlacement="center"
maskSkin="probar.maskskin"
maximum="100"
direction="right"
mode="manual"
minimum="0"
barSkin="probar.updatedisplay_"
visible="false"
alpha="0.9"> </mx:ProgressBar>

as中:

(注意:没有贴上整个的,只是取了其中相关的)

 private var requestDataTimer:Timer = new Timer(50);

 public function complete():void
{
//register event.
requestDataTimer.addEventListener(TimerEvent.TIMER, progressOnRequestDataTimer);
} private function progressOnRequestDataTimer(event:TimerEvent):void
{
if (progressInt > separateProgressInt)
{
proBar.label = "数据量大或网络慢, 请耐心...";
requestDataTimer.stop();
return;
} proBar.setProgress(progressInt, 100);
proBar.label = "当前进度: " + progressInt.toString() + "%" + "(正在请求数据...)";
progressInt++;
}

呵呵,皮肤是在网上找来的(其实本人对flex研究不深,这皮肤里面的弯弯绕绕也没完全看明白,而且感觉flex的每次升级都变动很大,皮肤相关的很多属性都不是以前能用的,导致学习成本都很高啊~所以拿过来修改一番能用就用上了):

1.borderskin.as

 import mx.skins.halo.ProgressTrackSkin;
import mx.skins.Border;
import mx.styles.StyleManager;
import mx.utils.ColorUtil; /**
* ...
* @author Thyiad
*/
public class borderskin extends ProgressTrackSkin
{ public function borderskin()
{
super();
} override protected function updateDisplayList(w:Number, h:Number):void
{
super.updateDisplayList(w, h); // User-defined styles
var borderColor:uint = getStyle("borderColor");
var fillColors:Array = getStyle("trackColors") as Array;
this.styleManager.getColorNames(fillColors); // ProgressTrack-unique styles
var borderColorDrk1:Number = ColorUtil.adjustBrightness2(borderColor, -30); graphics.clear(); drawRoundRect(0, 0, w, h, 0, [borderColorDrk1, borderColor], 0, verticalGradientMatrix(0, 0, w, h)); drawRoundRect(1, 1, w - 2, h - 2, 0, fillColors, 0, verticalGradientMatrix(1, 1, w - 2, h - 2));
} }

2.maskskin.as

         import flash.display.Graphics;

     import mx.skins.halo.ProgressMaskSkin;

     /**
* ...
* @author Thyiad
*/
public class maskskin extends ProgressMaskSkin
{ public function maskskin()
{
super();
} override protected function updateDisplayList(w:Number, h:Number):void
{
super.updateDisplayList(w, h); // draw the mask
var g:Graphics = graphics;
g.clear();
g.beginFill(0xFFFF00);
//g.drawRect(1, 1, w - 2, h - 2);
g.drawRoundRect(1, 1, w - 2, h - 2, 20, 20);
g.endFill();
}
}

3.updatedisplay_.as

     import flash.display.Graphics;
import mx.skins.halo.ProgressIndeterminateSkin;
import mx.styles.StyleManager;
import mx.utils.ColorUtil;
import mx.controls.ProgressBar;
import mx.skins.halo.ProgressTrackSkin; /**
* ...
* @author Thyiad
*/
public class updatedisplay_ extends ProgressIndeterminateSkin
{ public function updatedisplay_()
{
super();
} override protected function updateDisplayList(w:Number, h:Number):void
{
super.updateDisplayList(w, h); var barColorStyle:* = 0xff9935; //blue
var barColor:uint=this.styleManager.isValidStyleValue(barColorStyle) ? barColorStyle : getStyle("themeColor"); var barColor0:Number = ColorUtil.adjustBrightness2(barColor, 0);
var hatchInterval:Number = getStyle("indeterminateMoveInterval"); if (isNaN(hatchInterval))
hatchInterval = 28; var g:Graphics = graphics; g.clear(); if (w == 0)
{
}
else
{
g.beginFill(barColor0, 1);
g.moveTo(0, 1);
g.lineTo(w, 1);
g.curveTo(w + 10, h / 2, w, h - 1);
g.lineTo(0, h - 1);
g.lineTo(0, 1);
g.endFill();
}
} }

Flex进度条的更多相关文章

  1. Flex4/Flash多文件上传(带进度条)实例分享

    要求 必备知识 本文要求基本了解 Adobe Flex编程知识和JAVA基础知识. 开发环境 MyEclipse10/Flash Builder4.6/Flash Player11及以上 演示地址 演 ...

  2. vue2-loading-bar 一款基于Vue2的进度条插件

    自学了N久vue,奈何没有练手项目,终于决心拿个东西来试试手.基于对音乐的热爱,选择的第一个demo是音乐播放器.一般播放器都有进度条,于是无意间找到这个插件,就是vue2-loading-bar,这 ...

  3. 纯CSS打造进度条

    进度条效果如下: CSS部分 body { background-color: white; } .progress-bar { display: flex; flex-direction: row; ...

  4. 圆形进度条css3样式

    <view class="con"> <view class="percent-circle percent-circle-left"> ...

  5. 【消灭代办】第5周 - null拷贝,input自适应,进度条加载,颜色随机值

    2018.12.10 代办一:javascript中js怎么拷贝null的值 null属于简单类型的数值,直接进行拷贝即可: 2018.12.11 代办二:怎么让input自适应宽度? 这样是写下代办 ...

  6. 微信小程序 - 时间进度条功能

    关于答题类,或者一些游戏环节的小程序需要用到时间进度条,改功能怎么实现看下面源码 <view class='out' style='margin-top:10px'> <view c ...

  7. CodePush自定义更新弹框及下载进度条

    CodePush 热更新之自定义更新弹框及下载进度 先来几张弹框效果图 非强制更新场景 image 强制更新场景 image 更新包下载进度效果 image 核心代码 这里的热更新Modal框,是封装 ...

  8. css3实现loading效果--当页面加载过程中显示Loading的进度条,全部加载完成之后进度条消失

    一个页面等图片资源全部加载完成,会需要很长时间,用户体验会很差,所以我们需要loading来掩盖这个漫长的过程! emmm,定时器?写个定时器还要清除,万一造成内存泄露?定时器之间还会互相影响,呼呼呼 ...

  9. Vue/React圆环进度条

    数据展示,一直是各行各业乐此不疲的需求,具体到前端开发行业,则是各种各种图表数据展示,各种表格数据展示,烦不胜烦(繁不胜繁)! 前几天刚做了折线图.柱状图.饼状图之类的图表数据展示效果,今天又碰到了类 ...

随机推荐

  1. input===》name属性异常错误

    <input type="text" name="status" /> 使用springMVC时,如果有这个输入框,此框必须要填,且必须是数字,否者 ...

  2. VM安装Ubuntu问题合集(无法联网、中文界面设置、中文输入法etc)

    经常使用VM安装Ubuntu,安装系统的步骤跟着系统提示一步步下来就行,但总是遇到一些问题,这里记录一下常遇到的问题,以及自己解决的办法: 1.无法联网: 状况:Ubuntu不能联网,联网地方一直在闪 ...

  3. Redis持久化磁盘IO方式及其带来的问题   有Redis线上运维经验的人会发现Redis在物理内存使用比较多,但还没有超过实际物理内存总容量时就会发生不稳定甚至崩溃的问题,有人认为是基于快照方式持

    转自:http://blog.csdn.net/kaosini/article/details/9176961 一.对Redis持久化的探讨与理解    redis是一个支持持久化的内存数据库,也就是 ...

  4. JS 实现百度搜索功能

    今天我们来用JS实现百度搜索功能,下面上代码: HTML部分: <!DOCTYPE html> <html> <head> <meta charset=&qu ...

  5. HTML学习(二)

    表格和列表 <!-- /* @dl→definition list(定义列表),ul→unordered list(无序列表),ol→ordered list * @一个完整的表格.table. ...

  6. 输入和输出--javase中的路径

    就目前为止, javase中经常用到路径来读取一个资源文件的所有情况都已经整理在博客里面了,这里做一个统一的整理: 1,IO流来读取一个文件,比如说new FileInputStream(" ...

  7. JavaScript基础:BOM的常见内置方法和内置对象

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. BOM的介绍 JavaScript的组成 JavaScript基础分为三 ...

  8. HTML5与css3权威指南(一)

    doctype声明: <!DOCTYPE html> 字符编码: <meta charset="utf-8"> 不允许写结束标记:area,base,br. ...

  9. 【转】Awk 命令学习总结、AWk命令系列学习(linux shell)

    前面的话 学习linux 的同人,都知道linux shell文本处理能力非常强大.有一组强大的文本处理工具:grep,sed,awk . 其中grep 经常用作查找匹配文本.sed用作文本编辑替换. ...

  10. C++ explicit关键字详解(转载)

    转载:https://www.cnblogs.com/ymy124/p/3632634.html 首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函 ...