- 浏览: 1586811 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (571)
- Flex (301)
- AIR (5)
- ComPiere (8)
- ExtJS (15)
- SAP (0)
- jBPM (3)
- Java-Hibernate (5)
- Java-Spring (10)
- XML (2)
- java-web (30)
- db2 (2)
- websphere (4)
- Google (5)
- 虚拟机 (10)
- eclipse (8)
- Win2003 (11)
- Ubuntu (27)
- VMware (4)
- CentOS (3)
- JSON (1)
- Oracle (15)
- SilverLight (1)
- 大事记 (6)
- VirtualBox (5)
- Solaris (10)
- AIX (6)
- 云计算 (10)
- MacOS (4)
- iOS (1)
- SQLite (1)
- Activiti (1)
- jdk (5)
- hadoop (8)
- Ant (4)
- PhoneGap (2)
- JavaScript (11)
- jQuery (1)
- FireFox (1)
- HBase (2)
- sqoop (0)
- ffmpeg (7)
- mencode (0)
- jdbc (1)
- SQLServer (1)
- 组件平台 (12)
- struts2 (4)
- intellj (4)
- android (1)
- ExtJS4 (1)
- 色卡司 (1)
- Linux (3)
- ExtJS5 (1)
- zookeeper (2)
- maven (1)
- Java (6)
- vpn (0)
- squid (1)
- MySQL (2)
- webpackage (1)
- antd (1)
- lucene (1)
最新评论
-
qq_24800465:
请问这里的库从哪下载啊
ffmpeg所有的编码器(encoders) -
neusoft_jerry:
貌似这里没用到StreamingAMFChannel哦,只是用 ...
Flex BlazeDS 推送技术 -
anyone:
感谢你的博文,看了受益匪浅
记住这个IntelliJ IDEA的编译设置 -
keren:
现在还有什么应用需要用flex来开发的?
flex tree的展开,关闭,添加、删除子节点 -
neusoft_jerry:
简洁明快,好贴好贴!楼主V5!
flex tree的展开,关闭,添加、删除子节点
Flex 自定义加载进度条
转:http://a168.blogbus.com/logs/28718649.html
使用方法:
设置Application标签的preloader为 MyComponent.MyDownloadProgressBar
<mx:Application preloader="MyComponent.MyDownloadProgressBar" >
下面是MyDownloadProgressBar.as的代码:
package MyComponent
{
import flash.display.*;
import flash.events.*;
import flash.filters.BitmapFilterQuality;
import flash.filters.BlurFilter;
import flash.geom.Matrix;
import flash.net.*;
import flash.text.TextField;
import flash.utils.*;
import flash.system.Capabilities;
import mx.events.*;
import mx.preloaders.*;
public class MyDownloadProgressBar extends Sprite implements IPreloaderDisplay
{
[Embed(source="logo.png", mimeType="application/octet-stream")]
public var _loadingLogo:Class;
private var dpbImageControl:Loader;
private var _barSprite:Sprite;
private var progressText:TextField;
private var ProgressBarSpritIsAdded:Boolean = false;
public function MyDownloadProgressBar() {
super();
}
// Specify the event listeners.
public function set preloader(preloader:Sprite):void {
//Listen for 正在下载
preloader.addEventListener(ProgressEvent.PROGRESS, handleProgress);
//Listen for 下载完成
preloader.addEventListener(Event.COMPLETE, handleComplete);
//Listen for 正在初始化
preloader.addEventListener(FlexEvent.INIT_PROGRESS, handleInitProgress);
//Listen for 初始化完成
preloader.addEventListener(FlexEvent.INIT_COMPLETE, handleInitComplete);
}
// Initialize the Loader control in the override
// of IPreloaderDisplay.initialize().
public function initialize():void {
//添加logo图
dpbImageControl = new Loader();
dpbImageControl.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_completeHandler);
dpbImageControl.loadBytes(new _loadingLogo() as ByteArray);
//dpbImageControl.load(new URLRequest("loadinglogo.swf"));
}
// After the SWF file loads, set the size of the Loader control.
private function loader_completeHandler(event:Event):void
{
addChild(dpbImageControl);
dpbImageControl.width = 230;
dpbImageControl.height= 80;
dpbImageControl.x = this.stage.stageWidth/2 - dpbImageControl.width/2;
dpbImageControl.y = this.stage.stageHeight/2 - dpbImageControl.height/2 - 80;
}
//
private function addProgressBarSprit():void{
//绘制背景渐变
var matrix:Matrix=new Matrix();
matrix.createGradientBox(this.stage.stageWidth,this.stage.stageHeight,Math.PI/2);
var colors:Array=[0x058BBD,0xFFFFFF];
var alphas:Array=[1,1];
var ratios:Array=[0,255];
this.graphics.lineStyle();
this.graphics.beginGradientFill(GradientType.LINEAR,colors,alphas,ratios,matrix);
this.graphics.drawRect(0,0,this.stage.stageWidth,this.stage.stageHeight);
this.graphics.endFill();
//绘制中心白色发光
var _Sprite1:Sprite = new Sprite();
addChild(_Sprite1);
_Sprite1.graphics.beginFill(0xffffff,0.45);
_Sprite1.graphics.drawEllipse(this.stage.stageWidth/2-130, this.stage.stageHeight/2-90, 280, 100);
_Sprite1.graphics.endFill();
//滤镜实现发光边缘柔和
var blur:BlurFilter = new BlurFilter();
blur.blurX = 100;
blur.blurY = 50;
blur.quality = BitmapFilterQuality.HIGH;
_Sprite1.filters = [blur];
//-------------------------------------------------
//绘制进度条背景
var _Sprite2:Sprite = new Sprite();
addChild(_Sprite2);
_Sprite2.graphics.lineStyle(1, 0xCCCCCC);
_Sprite2.graphics.beginFill(0xFFFFFF);
_Sprite2.graphics.drawRect((this.stage.stageWidth/2 - 152), (this.stage.stageHeight/2 - 10), 304, 20);
_Sprite2.graphics.endFill();
//-------------------------------------------------
//加载进度条Sprite
_barSprite = new Sprite();
addChild(_barSprite);
_barSprite.x = this.stage.stageWidth/2 - 150;
_barSprite.y = this.stage.stageHeight/2 - 8;
//-------------------------------------------------
//加载进度条文字
progressText = new TextField();
addChild(progressText);
progressText.textColor = 0x333333;
progressText.width = 300;
progressText.height = 18;
progressText.x = this.stage.stageWidth/2 - 152;
progressText.y = this.stage.stageHeight/2 + 20;
}
//刷新进度条
private function drawProgressBar(bytesLoaded:Number, bytesTotal:Number):void
{
if (_barSprite != null && progressText != null){
var g:Graphics = _barSprite.graphics;
g.clear();
// g.beginFill(0xCCCCCC);
// g.drawRect(0, 0, 300*(bytesLoaded/bytesTotal),16);
// g.endFill();
var matrix:Matrix=new Matrix();
matrix.createGradientBox(300*(bytesLoaded/bytesTotal),16,Math.PI/2);
var colors:Array=[0x0099CC,0x99cc77];
var alphas:Array=[1,1];
var ratios:Array=[0,255];
g.lineStyle();
g.beginGradientFill(GradientType.LINEAR,colors,alphas,ratios,matrix);
g.drawRect(0,0,300*(bytesLoaded/bytesTotal),16);
g.endFill();
}
}
//正在下载的进度
private function handleProgress(event:ProgressEvent):void {
//第一次处理时绘制进度条Sprit
if (ProgressBarSpritIsAdded == false){
ProgressBarSpritIsAdded = true;
addProgressBarSprit();
}
if (progressText != null){
progressText.text = "下载进度:已下载 " + event.bytesLoaded + " byte,总大小 " + event.bytesTotal + " byte.";
}
drawProgressBar(event.bytesLoaded, event.bytesTotal);
}
private function handleComplete(event:Event):void {
if (progressText != null){
progressText.text = "下载完成.";
}
drawProgressBar(1,1);
}
private function handleInitProgress(event:Event):void {
if (progressText != null){
progressText.text = "正在初始化...";
}
drawProgressBar(1,1);
}
private function handleInitComplete(event:Event):void {
if (progressText != null){
progressText.text = "初始化完成.";
}
drawProgressBar(1,1);
//0.03秒后抛出完成事件
var timer:Timer = new Timer(300,1);
timer.addEventListener(TimerEvent.TIMER, dispatchComplete);
timer.start();
}
private function dispatchComplete(event:TimerEvent):void {
dispatchEvent(new Event(Event.COMPLETE));
}
// Implement IPreloaderDisplay interface
public function get backgroundColor():uint {
return 0;
}
public function set backgroundColor(value:uint):void {
}
public function get backgroundAlpha():Number {
return 0;
}
public function set backgroundAlpha(value:Number):void {
}
public function get backgroundImage():Object {
return undefined;
}
public function set backgroundImage(value:Object):void {
}
public function get backgroundSize():String {
return "";
}
public function set backgroundSize(value:String):void {
}
public function get stageWidth():Number {
return 500;
}
public function set stageWidth(value:Number):void {
}
public function get stageHeight():Number {
return 375;
}
public function set stageHeight(value:Number):void {
}
}
}
转:http://a168.blogbus.com/logs/28718649.html
使用方法:
设置Application标签的preloader为 MyComponent.MyDownloadProgressBar
<mx:Application preloader="MyComponent.MyDownloadProgressBar" >
下面是MyDownloadProgressBar.as的代码:
package MyComponent
{
import flash.display.*;
import flash.events.*;
import flash.filters.BitmapFilterQuality;
import flash.filters.BlurFilter;
import flash.geom.Matrix;
import flash.net.*;
import flash.text.TextField;
import flash.utils.*;
import flash.system.Capabilities;
import mx.events.*;
import mx.preloaders.*;
public class MyDownloadProgressBar extends Sprite implements IPreloaderDisplay
{
[Embed(source="logo.png", mimeType="application/octet-stream")]
public var _loadingLogo:Class;
private var dpbImageControl:Loader;
private var _barSprite:Sprite;
private var progressText:TextField;
private var ProgressBarSpritIsAdded:Boolean = false;
public function MyDownloadProgressBar() {
super();
}
// Specify the event listeners.
public function set preloader(preloader:Sprite):void {
//Listen for 正在下载
preloader.addEventListener(ProgressEvent.PROGRESS, handleProgress);
//Listen for 下载完成
preloader.addEventListener(Event.COMPLETE, handleComplete);
//Listen for 正在初始化
preloader.addEventListener(FlexEvent.INIT_PROGRESS, handleInitProgress);
//Listen for 初始化完成
preloader.addEventListener(FlexEvent.INIT_COMPLETE, handleInitComplete);
}
// Initialize the Loader control in the override
// of IPreloaderDisplay.initialize().
public function initialize():void {
//添加logo图
dpbImageControl = new Loader();
dpbImageControl.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_completeHandler);
dpbImageControl.loadBytes(new _loadingLogo() as ByteArray);
//dpbImageControl.load(new URLRequest("loadinglogo.swf"));
}
// After the SWF file loads, set the size of the Loader control.
private function loader_completeHandler(event:Event):void
{
addChild(dpbImageControl);
dpbImageControl.width = 230;
dpbImageControl.height= 80;
dpbImageControl.x = this.stage.stageWidth/2 - dpbImageControl.width/2;
dpbImageControl.y = this.stage.stageHeight/2 - dpbImageControl.height/2 - 80;
}
//
private function addProgressBarSprit():void{
//绘制背景渐变
var matrix:Matrix=new Matrix();
matrix.createGradientBox(this.stage.stageWidth,this.stage.stageHeight,Math.PI/2);
var colors:Array=[0x058BBD,0xFFFFFF];
var alphas:Array=[1,1];
var ratios:Array=[0,255];
this.graphics.lineStyle();
this.graphics.beginGradientFill(GradientType.LINEAR,colors,alphas,ratios,matrix);
this.graphics.drawRect(0,0,this.stage.stageWidth,this.stage.stageHeight);
this.graphics.endFill();
//绘制中心白色发光
var _Sprite1:Sprite = new Sprite();
addChild(_Sprite1);
_Sprite1.graphics.beginFill(0xffffff,0.45);
_Sprite1.graphics.drawEllipse(this.stage.stageWidth/2-130, this.stage.stageHeight/2-90, 280, 100);
_Sprite1.graphics.endFill();
//滤镜实现发光边缘柔和
var blur:BlurFilter = new BlurFilter();
blur.blurX = 100;
blur.blurY = 50;
blur.quality = BitmapFilterQuality.HIGH;
_Sprite1.filters = [blur];
//-------------------------------------------------
//绘制进度条背景
var _Sprite2:Sprite = new Sprite();
addChild(_Sprite2);
_Sprite2.graphics.lineStyle(1, 0xCCCCCC);
_Sprite2.graphics.beginFill(0xFFFFFF);
_Sprite2.graphics.drawRect((this.stage.stageWidth/2 - 152), (this.stage.stageHeight/2 - 10), 304, 20);
_Sprite2.graphics.endFill();
//-------------------------------------------------
//加载进度条Sprite
_barSprite = new Sprite();
addChild(_barSprite);
_barSprite.x = this.stage.stageWidth/2 - 150;
_barSprite.y = this.stage.stageHeight/2 - 8;
//-------------------------------------------------
//加载进度条文字
progressText = new TextField();
addChild(progressText);
progressText.textColor = 0x333333;
progressText.width = 300;
progressText.height = 18;
progressText.x = this.stage.stageWidth/2 - 152;
progressText.y = this.stage.stageHeight/2 + 20;
}
//刷新进度条
private function drawProgressBar(bytesLoaded:Number, bytesTotal:Number):void
{
if (_barSprite != null && progressText != null){
var g:Graphics = _barSprite.graphics;
g.clear();
// g.beginFill(0xCCCCCC);
// g.drawRect(0, 0, 300*(bytesLoaded/bytesTotal),16);
// g.endFill();
var matrix:Matrix=new Matrix();
matrix.createGradientBox(300*(bytesLoaded/bytesTotal),16,Math.PI/2);
var colors:Array=[0x0099CC,0x99cc77];
var alphas:Array=[1,1];
var ratios:Array=[0,255];
g.lineStyle();
g.beginGradientFill(GradientType.LINEAR,colors,alphas,ratios,matrix);
g.drawRect(0,0,300*(bytesLoaded/bytesTotal),16);
g.endFill();
}
}
//正在下载的进度
private function handleProgress(event:ProgressEvent):void {
//第一次处理时绘制进度条Sprit
if (ProgressBarSpritIsAdded == false){
ProgressBarSpritIsAdded = true;
addProgressBarSprit();
}
if (progressText != null){
progressText.text = "下载进度:已下载 " + event.bytesLoaded + " byte,总大小 " + event.bytesTotal + " byte.";
}
drawProgressBar(event.bytesLoaded, event.bytesTotal);
}
private function handleComplete(event:Event):void {
if (progressText != null){
progressText.text = "下载完成.";
}
drawProgressBar(1,1);
}
private function handleInitProgress(event:Event):void {
if (progressText != null){
progressText.text = "正在初始化...";
}
drawProgressBar(1,1);
}
private function handleInitComplete(event:Event):void {
if (progressText != null){
progressText.text = "初始化完成.";
}
drawProgressBar(1,1);
//0.03秒后抛出完成事件
var timer:Timer = new Timer(300,1);
timer.addEventListener(TimerEvent.TIMER, dispatchComplete);
timer.start();
}
private function dispatchComplete(event:TimerEvent):void {
dispatchEvent(new Event(Event.COMPLETE));
}
// Implement IPreloaderDisplay interface
public function get backgroundColor():uint {
return 0;
}
public function set backgroundColor(value:uint):void {
}
public function get backgroundAlpha():Number {
return 0;
}
public function set backgroundAlpha(value:Number):void {
}
public function get backgroundImage():Object {
return undefined;
}
public function set backgroundImage(value:Object):void {
}
public function get backgroundSize():String {
return "";
}
public function set backgroundSize(value:String):void {
}
public function get stageWidth():Number {
return 500;
}
public function set stageWidth(value:Number):void {
}
public function get stageHeight():Number {
return 375;
}
public function set stageHeight(value:Number):void {
}
}
}
发表评论
-
extjs结合flex(flash)的注意事项.
2014-01-02 17:11 2454//for fix bug //flash里使 ... -
flash(flex)crossdomain dtd规范
2013-12-27 13:38 1008dtd文件位置: http://www.macromedia. ... -
flash内嵌在html里面的代码
2013-12-27 09:19 1249<!-- 除IE外都可识别 --> < ... -
FlashBuilder4.5 ADT命令详解(官方)
2011-12-16 17:45 1302http://help.adobe.com/en_US/air ... -
FlashBuilder4.5加入ADT插件
2011-12-16 17:24 1906参考: http://renaun.com/blog/2011 ... -
Flex as3commons log的简单使用
2011-11-28 20:26 1662http://www.as3commons.org/ &l ... -
Flex日志工具汇总
2011-11-27 16:29 1313巨兽 monster [能调试 mobile和web air] ... -
【转】[Flex]我经常使用的Flex Tools 和 Resource
2011-11-22 08:36 1353http://www.k-zone.cn/zblog/post ... -
[转]Flex Socket安全策略<policy-file-request/>及应对方法
2011-08-27 16:43 1796http://hi.baidu.com/dobodo/blog ... -
flash 安全策略文件
2011-08-27 16:31 2203<?xml version="1.0&qu ... -
Request请求头的格式
2011-08-27 15:38 2415每次提交http请求时,请求头是什么样的的格式呢? GET方 ... -
flash Tooltip类
2011-08-27 15:06 1192http://www.flepstudio.com/flash ... -
flash SQLite包装类
2011-08-27 15:00 2287[转]http://www.flepstudio.com/fl ... -
[转](原创)flex解决跨域问题的策略文件的写法
2011-08-04 09:59 1623http://hi.baidu.com/wosinmaiken ... -
[转](整理)flex常用验证控件
2011-08-04 08:30 1438http://hi.baidu.com/wosinmaiken ... -
Flex4.5 skin组建皮肤的应用
2011-07-28 08:52 2875http://www.iyoya.com/2011/06/04 ... -
如何成为一个合格的iOS开发者?
2011-07-17 14:59 1404转:http://www.adobe.com/cn/devne ... -
flex4.5移动设备开发-添加应用背景图片
2011-07-17 10:50 2339【转】http://spy6.blogspot.com/201 ... -
flex4.5移动设备开发-应用访问权限设置
2011-07-16 14:19 1419在构建flex4.5 mobile application的时 ... -
flex4.5移动设备开发-表格效果
2011-07-15 23:12 1875做了个实验,没想到做出表格的效果
相关推荐
在“flex自定义加载进度条”的场景中,开发者可能想要替换Flex默认的Application预加载器,以提供更个性化的用户体验。自定义预加载器可以让开发者自由设计加载界面的外观和交互,例如改变颜色、形状或动画效果,...
在这个特定的案例中,我们关注的是使用Flex实现的自定义圆形加载进度条。 在Web应用中,进度条是用户界面中常见的一种元素,用于指示某个任务或数据加载的进度。圆形进度条与传统的水平进度条不同,它以圆形图案...
在Flex3中,有时候我们需要自定义加载进度条来满足特定的界面设计或用户体验需求。下面将详细讲解如何在Flex3中实现自定义的加载进度条。 1. **自定义组件基础** 在Flex3中,我们可以创建自定义组件来扩展或替换...
在本文中,我们将深入探讨如何在Flex环境中自定义加载条,即进度条组件。Flex是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。它提供了丰富的UI组件库,其中包括标准的进度条组件,但有时...
本文将深入探讨Flex自定义加载器的相关知识点,帮助你理解和掌握如何在Flex项目中实现这一功能。 1. **Loader类** Loader类是AS3中的核心类,位于`flash.display`包下,用于加载和显示各种类型的媒体资源。通过...
进度条是用户界面中常见的组件,用于表示任务的完成程度或加载状态。本文将深入探讨如何在Flex 4中创建和定制进度条的皮肤。 首先,我们需要了解Flex 4中的皮肤架构。Flex 4引入了Spark组件模型,其中皮肤是组件...
在Flex中,我们可以创建自定义的用户界面组件,其中包括进度条,用于显示任务的完成进度或数据加载状态。 描述部分虽然为空,但根据标签“源码”和“工具”,我们可以推测这篇博文可能提供了关于如何使用Flex来创建...
这个"Flex 预加载动画demo"是Flex应用中的一个实例,它展示了如何自定义预加载进度条动画,使得用户在等待应用程序加载时能有一个更友好的交互体验。 预加载是任何富媒体应用程序的关键部分,因为它确保了所有必要...
本教程将详细解释如何使用AS3来创建一个自定义的加载进度条,并涉及到动态画图以及界面初始化的相关知识。 1. **AS3基础** AS3是Flash Professional、Flex Builder等开发工具中的编程语言,广泛用于创建富互联网...
本项目“flex自定义截取图片上传”就是这样一个解决方案,它采用Adobe Flex技术实现,结合C#后端处理,为用户提供了一套完整的截图上传系统。以下是关于这个项目的详细知识点: 1. **Flex技术**:Flex是Adobe公司...
AsyncTree是Flex中的一个自定义组件,它允许开发者构建能够异步加载数据的树形结构。这通常用于展示大量数据或者需要动态加载子节点的情况。通过这种方式,可以显著提高应用的性能和用户体验。 ### 二、代码解析 #...
在Flex中,进度条组件通常用于显示应用程序执行的某个任务的进度,如数据加载、文件上传或计算过程。Flex标准库中包含了多种进度条组件,如HProgressBar(水平进度条)和VProgressBar(垂直进度条),这些组件可以...
Flex允许自定义组件样式,包括进度条的颜色、宽度、高度等。这可以通过CSS或直接在MXML中设置属性完成。例如: ```xml ``` 这里的`trackColor`和`barColor`分别设置了轨道和填充条的颜色。 **5. 使用压缩包中的...
标题“flex3自定义DownloadProgressBar”指的是在Adobe Flex 3框架中创建一个定制的下载进度条组件。Flex 3是一个开源的开发工具,用于构建富互联网应用程序(RIA),它使用MXML和ActionScript 3语言编写。下载...
Flex扇形Loading是一种在Flex应用中实现的自定义加载指示器,它提供了更加美观和动态的用户体验,替代了默认的加载动画。这种加载效果通常采用扇形或环形的进度条设计,使得用户能够直观地看到加载过程的进度。本文...
在默认情况下,Flex的预加载器是一个简单的白色背景上带有Adobe Flex标志的进度条。然而,为了提升用户体验和品牌一致性,开发者常常需要自定义这个预加载器,使其更加个性化。 首先,我们来理解一下`flex初始化...
此外,还设置了背景颜色和自定义加载进度条(“preloader”),这些都展示了Flex的自定义和灵活性。 在组件和类的导入部分,我们可以看到Flex与Esri的ArcGIS Flex API的集成,这表明这个应用可能是一个地理信息系统...
在本文中,我们将深入探讨如何在ActionScript 3.0中创建一个自定义的进度条组件,这与提供的"as 3.0 进度条(附带源码)"资源紧密相关。ActionScript 3.0是Adobe Flash Professional中的编程语言,用于创建交互式富...
在Flex4中,ProgressBar组件通过图形化的方式展示数据加载、任务执行等操作的进度。它支持两种模式:确定性(determinate)和不确定性(indeterminate)。确定性进度条显示实际的进度百分比,而不确定性进度条通常...
4. **组件自定义**:`com`文件夹中的类可能包含了自定义的加载组件,比如自定义的进度条或加载动画。这些类可能会扩展Flex的基础组件,如`mx.controls.ProgressBar`,并添加特定的功能或样式。 5. **FLA与SWF**:未...