`
demojava
  • 浏览: 548918 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex3自定义DownloadProgressBar

 
阅读更多
flex3 默认的loading 图片



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



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 效果图:



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"/>
  • 大小: 2.4 KB
  • 大小: 11 KB
  • 大小: 1.7 KB
分享到:
评论

相关推荐

    flex4自定义事件用法

    3. **派发自定义事件** - 在需要触发事件的地方,使用`dispatchEvent()`方法派发自定义事件。确保事件对象已经被正确实例化并设置了必要的属性,如事件类型、目标等。 4. **注册事件监听器** - 要响应自定义事件...

    Flex4自定义组件开发.pdf

    Flex4采用了全新的Spark组件架构,与之前的Flex3(Halo组件架构)相比有了很大的改进。Spark架构采用了更为现代的设计模式,如MVC(Model-View-Controller)模式,这使得组件更加模块化、易于维护,并提高了整体性能...

    Flex3自定义组件类似于Fieldset

    Flex3自定义组件类似于Fieldset

    flex 高级自定义组件

    Flex中的高级自定义组件开发是构建复杂用户界面的关键技术,它允许开发者超越基本组件的限制,以满足特定的业务需求和视觉设计。在创建高级组件时,了解并掌握一些核心方法的重写至关重要,这些方法涉及到组件的生命...

    Flex Mobile自定义实现的弹出对话框

    在Flex Mobile中,自定义实现弹出对话框是一项常见的需求,这通常涉及到用户交互和界面设计的灵活性。 对话框在移动应用中扮演着重要的角色,它们可以用来显示警告、询问用户输入或者进行一些特殊操作。在Flex ...

    Flex3自定义的加载进度条

    在Flex3中,有时候我们需要自定义加载进度条来满足特定的界面设计或用户体验需求。下面将详细讲解如何在Flex3中实现自定义的加载进度条。 1. **自定义组件基础** 在Flex3中,我们可以创建自定义组件来扩展或替换...

    flex3自定义组件之间的拖拽事件处理

    因为工作原因和个人兴趣原因,刚接触flex,遇到不少问题,这次花了一个早上的时间专门研究了一下组件件的拖拽,呵呵,还是很有成就感的。

    flex 自定义控件、事件

    3. **样式和皮肤**:Flex支持皮肤和样式的概念,允许你改变控件的视觉外观。自定义控件可以通过定义自己的皮肤类来实现独特的视觉效果。 4. **事件处理**:事件是Flex中的重要一环,它们负责组件之间的通信。自定义...

    Flex开发自定义控件

    ### Flex开发自定义控件详解 #### 一、前言 随着互联网技术的不断发展与进步,用户对于网页应用的需求越来越倾向于交互性和体验性更强的应用,而Rich Internet Applications (RIA)正是这种需求下的产物之一。Adobe...

    flex4自定义组件皮肤

    - MX组件是Flex3时代的组件,而Spark是Flex4的新一代组件集,更轻量级且性能更好。 - 如果在自定义皮肤中使用了MX组件,可能与Flex4的Spark组件不兼容。因此,描述中提到的“请自己把所有mx组件改成sp组件”,是...

    Flex4.0自定义控件

    ### Flex4.0自定义控件开发详解 #### 一、引言 随着Flex技术的发展,自定义控件成为提高应用程序灵活性与可扩展性的重要手段之一。本文将深入讲解Flex4.0环境下自定义控件的开发过程及注意事项,帮助开发者更好地...

    Flex4 自定义通用ImageButton

    在Flex4中,自定义组件是一项重要的技能,它允许开发者根据特定需求创建具有独特功能和外观的用户界面元素。本话题聚焦于自定义一个通用的`ImageButton`组件,该组件结合了图像和按钮的功能,提供了更丰富的交互体验...

    Flex手机项目自定义List的ItemRenderer

    在Flex手机项目开发中,创建自定义的List组件ItemRenderer是一项常见的需求,目的是为了提供更加丰富和个性化的显示效果。本文将深入探讨如何利用IconItemRenderer来实现这一目标,同时结合具体的实例,介绍两种不同...

    flex开发自定义控件

    ### Flex开发自定义控件详解 Flex是一种强大的框架,用于构建高性能、丰富的互联网应用程序(RIA)。自定义控件是Flex开发中的一个重要方面,它允许开发者根据特定需求创建独特的UI组件,从而增强应用的功能性和...

    Arcgis flex api自定义风场点图标样式

    Arcgis flex api自定义风场点图标样式

    Flex dataGrid 自定义显示列

    本篇文章将深入探讨Flex中的数据Grid组件以及如何自定义显示列,这对于提升用户体验和增强数据展示功能至关重要。 Flex DataGrid是MXML组件库中的一个控件,它允许开发者以网格形式展示数据集合。这种组件特别适用...

    Flex 自定义组件ImageViewer

    3. **commitProperties()**: 在属性更改后,Flex会调用此方法来更新组件的状态。如果你的组件有一些依赖于其他属性的属性,例如ImageViewer的缩放因子取决于某个属性,那么在这个方法中处理这些变化。 4. **...

    flex4自定义弹出窗口 事件

    flex4自定义弹出窗口 支持最大化 最小化

Global site tag (gtag.js) - Google Analytics