flex3自定义DownloadProgressBar

flex3 默认的loading 图片

[img]http://dl.iteye.com/upload/attachment/544758/910834e3-42c3-3fc3-a0af-9d82a96d3ac2.jpg[/img]

1.简单的自定义loading效果图:

[img]http://dl.iteye.com/upload/attachment/544760/f768dad5-2f3e-3bc6-84c6-53686a944ce1.jpg[/img]

MyDownProBar.as
package com
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.utils.Timer;

import mx.events.FlexEvent;
import mx.preloaders.DownloadProgressBar;

public class MyDownProBar extends DownloadProgressBar
{
private var progressText:TextField;

private var msgText:TextField;

public function MyDownProBar()
{
super();
// Configure the TextField for progress messages.
progressText = new TextField();
progressText.x = 10;
progressText.y = 90;
progressText.width = 400;
progressText.height = 400;

addChild(progressText);

// Configure the TextField for the final message.
msgText = new TextField();
msgText.x = 10;
msgText.y = 10;
msgText.width = 400;
msgText.height = 75;

addChild(msgText);
}

override public function set preloader(preloader:Sprite):void {
preloader.addEventListener(
ProgressEvent.PROGRESS, myHandleProgress);
preloader.addEventListener(
Event.COMPLETE, myHandleComplete);

preloader.addEventListener(
FlexEvent.INIT_PROGRESS, myHandleInitProgress);
preloader.addEventListener(
FlexEvent.INIT_COMPLETE, myHandleInitEnd);
}

private function myHandleProgress(event:ProgressEvent):void {
progressText.appendText("\n" + "Progress l: " +
event.bytesLoaded + " t: " + event.bytesTotal);
}

private function myHandleComplete(event:Event):void {
progressText.appendText("\n" + "Completed");
}

private function myHandleInitProgress(event:Event):void {
progressText.appendText("\n" + "App Init Start");
}

// Event listeners for the FlexEvent.INIT_COMPLETE event.
private function myHandleInitEnd(event:Event):void {
msgText.appendText("\n" + "App Init End");

var timer:Timer = new Timer(2000,1);
timer.addEventListener(TimerEvent.TIMER, dispatchComplete);
timer.start();
}

// Event listener for the Timer to pause long enough to
// read the text in the download progress bar.
private function dispatchComplete(event:TimerEvent):void {
dispatchEvent(new Event(Event.COMPLETE));
}
}
}
2.加载swf的loading 效果图:

[img]http://dl.iteye.com/upload/attachment/544762/7a87b43f-0476-37ca-ac31-92cbb446eca1.jpg[/img]

package com
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.TimerEvent;
import flash.net.URLRequest;
import flash.utils.Timer;

import mx.events.FlexEvent;
import mx.preloaders.IPreloaderDisplay;

public class MyDownloadProgressBarSWF extends Sprite
implements IPreloaderDisplay
{
// Define a Loader control to load the SWF file.
private var dpbImageControl:flash.display.Loader;

public function MyDownloadProgressBarSWF() {
super();
}

// Specify the event listeners.
public function set preloader(preloader:Sprite):void {
// Listen for the relevant events
preloader.addEventListener(
ProgressEvent.PROGRESS, handleProgress);
preloader.addEventListener(
Event.COMPLETE, handleComplete);

preloader.addEventListener(
FlexEvent.INIT_PROGRESS, handleInitProgress);
preloader.addEventListener(
FlexEvent.INIT_COMPLETE, handleInitComplete);
}

// Initialize the Loader control in the override
// of IPreloaderDisplay.initialize().
public function initialize():void {
dpbImageControl = new flash.display.Loader();
dpbImageControl.contentLoaderInfo.addEventListener(
Event.COMPLETE, loader_completeHandler);
dpbImageControl.load(new URLRequest("com/common/core/loading2.swf"));
}

// After the SWF file loads, set the size of the Loader control.
private function loader_completeHandler(event:Event):void
{
addChild(dpbImageControl);
dpbImageControl.width = 50;
dpbImageControl.height= 50;
dpbImageControl.x = 100;
dpbImageControl.y = 100;
}

// Define empty event listeners.
private function handleProgress(event:ProgressEvent):void {
}

private function handleComplete(event:Event):void {
}

private function handleInitProgress(event:Event):void {
}

private function handleInitComplete(event:Event):void {
var timer:Timer = new Timer(2000,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 200;
}

public function set stageWidth(value:Number):void {
}

public function get stageHeight():Number {
return 200;
}

public function set stageHeight(value:Number):void {
}
}
}

mxml中使用
<mx:Application preloader="com.MyDownloadProgressBarSWF"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值