`
lichen0921
  • 浏览: 81204 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

flex自定义preloader预加载进度条

    博客分类:
  • flex
阅读更多
flex默认的preloader已经很不错了,可是有时候还是需要自定义的.
 
需要在要出现自定义预加载的程序的<mx:Application>标签里加入preloader="".
preloader="com.lichen.component.CustomPreloader"
其中,com.lichen.component是我的包名,CustomPreloader这个类是继承了DownloadProgressBar
这句就是指明了程序preloader的时候加载哪个类
 
CustomPreloader.as
package com.lichen.component
{
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.events.ProgressEvent;
  import flash.text.TextField;
    
  import flashx.textLayout.BuildInfo;
    
  import mx.events.*;
  import mx.preloaders.DownloadProgressBar;
    
  public class CustomPreloader extends DownloadProgressBar {
    
    public var wcs:WelcomeScreen;
    public var msg:TextField;
    public function CustomPreloader()    
    {
      super();    
      msg=new TextField();
      wcs = new WelcomeScreen();
        
      this.addChild(wcs);
      this.addChild(msg);
    }
    
    override public function set preloader( preloader:Sprite ):void    
    {                                        
      preloader.addEventListener( ProgressEvent.PROGRESS , SWFDownloadProgress );        
      preloader.addEventListener( Event.COMPLETE , SWFDownloadComplete );
      preloader.addEventListener( FlexEvent.INIT_PROGRESS , FlexInitProgress );
      preloader.addEventListener( FlexEvent.INIT_COMPLETE , FlexInitComplete );
    }
    
    private function SWFDownloadProgress( event:ProgressEvent ):void {
      msg.text=String(int(event.bytesLoaded/event.bytesTotal*100))+" %";
      msg.background=true;
      msg.backgroundColor=0xD4E4FF;
      msg.width=200;
      msg.height=20;
      msg.textColor=0x444444;
    }
    
    private function SWFDownloadComplete( event:Event ):void {}
    
    private function FlexInitProgress( event:Event ):void {
//      wcs.ready = true;
      msg.text="完成了!";
      wcs.closeScreen();
      dispatchEvent(new Event(Event.COMPLETE));
    }
    
    private function FlexInitComplete( event:Event ):void    
    {            
//      wcs.ready = true;            
//      dispatchEvent( new Event( Event.COMPLETE ) );
    }
    
  }
}
 
这其中使用了WelcomeScreen,这个类的作用是使用图片,并且设置定时器控制图片显示的alpha属性.
WelcomeScreen.as
package com.lichen.component    
{        
  import flash.display.Loader;
  import flash.events.MouseEvent;
  import flash.events.TimerEvent;
  import flash.utils.ByteArray;
  import flash.utils.Timer;
    
  public class WelcomeScreen extends Loader
  {
    [ Embed(source="images/mt.jpg", mimeType="application/octet-stream") ]
    public var WelcomeScreenGraphic:Class;
    public var timer:Timer;
    private var fadeInRate:Number    = .05;
    private var fadeOutRate:Number = .08;
    private var timeAutoClose:int = 500;
    public var ready:Boolean = false;    
    
    public function WelcomeScreen()
    {
      this.visible = false;
      this.alpha = 0.5;
      timer = new Timer( 1 );
      timer.addEventListener( TimerEvent.TIMER, updateView );
      timer.start();
      this.loadBytes( new WelcomeScreenGraphic() as ByteArray );
      this.addEventListener( MouseEvent.MOUSE_DOWN, mouseDown );                            
    }
    
    public function updateView( event:TimerEvent ):void
    {
      if( this.alpha < 1)        this.alpha = this.alpha + this.fadeInRate;
      if( this.stage.stageWidth>0){
        this.stage.addChild(this);
        this.x = this.stage.stageWidth/2 - this.width/2;
        this.y = this.stage.stageHeight/2 - this.height/2;
        this.visible=true;
      }
      if( this.ready && timer.currentCount > this.timeAutoClose ) closeScreen()        
    }
    
    public function closeScreen():void
    {
      timer.removeEventListener( TimerEvent.TIMER, updateView );
      timer.removeEventListener( MouseEvent.MOUSE_DOWN, mouseDown);
      timer.addEventListener( TimerEvent.TIMER, closeScreenFade );                                        
    }
    
    public function closeScreenFade( event:TimerEvent ):void
    {
      if( this.alpha > 0){
        this.alpha = this.alpha - fadeOutRate;
      } else {
        timer.stop()
        this.parent.removeChild(this);
      }                
    }                
    
    public function mouseDown( event:MouseEvent ):void
    {
      closeScreen();                
    }
  }
}    
 
最终的效果图

 

  • 大小: 194.5 KB
分享到:
评论

相关推荐

    美丽的Flex Preloader控件,页面预加载效果

    美丽的Flex Preloader控件,页面预加载效果 美丽的Flex Preloader控件,页面预加载效果 美丽的Flex Preloader控件,页面预加载效果 美丽的Flex Preloader控件,页面预加载效果

    flex 自定义加载进度框

    在“flex自定义加载进度条”的场景中,开发者可能想要替换Flex默认的Application预加载器,以提供更个性化的用户体验。自定义预加载器可以让开发者自由设计加载界面的外观和交互,例如改变颜色、形状或动画效果,...

    flex初始化页面修改,preloader

    在Flex应用程序开发中,用户首次启动应用时会看到一个加载屏幕,这个屏幕通常被称为预加载器(Preloader)。预加载器的主要目的是显示应用程序加载的进度,同时为用户提供一种视觉反馈,让他们知道程序正在准备运行...

    swf预加载类

    在AS3(ActionScript 3)中,预加载通常通过创建自定义的预加载类实现。这个类负责监视主SWF文件的加载进度,更新加载条或者动态文本以显示当前的加载状态。以下是一些AS3预加载类的关键知识点: 1. **Event监听**...

    preloader是一款小巧的jQuery页面预加载loading指示器插件

    preloader插件提供了多种类型的加载动画,如旋转的加载图标(spinner)、进度条(bar)等。你可以根据项目需求选择适合的样式,或者通过CSS自定义加载动画。例如,你可以创建一个新的CSS类`my-spinner-class`,定义...

    flash的预加载代码

    预加载控件(Preloader Control)通常是一个小型的自包含SWF,它的任务是在主应用程序加载之前显示进度条和相关状态信息,给用户一个良好的交互体验。 以下是一些关于Flash预加载的关键知识点: 1. **ActionScript...

    使用ReactNative中的自定义图标弹跳预加载器组件

    在`react-native-bouncing-preloader-master`这个压缩包中,你可能会找到一个已经实现的自定义预加载器组件示例。通过研究源代码,你可以更深入地理解上述知识点,并将其应用到自己的项目中。同时,这个例子可以作为...

    jquery.preloader:Moomba 预加载器 | jQuery 插件

    jQuery.preloader 是一款轻量级的预加载解决方案,它允许开发者轻松地在网站上添加自定义的预加载动画。该插件基于 JavaScript 库 jQuery 构建,这意味着你需要在项目中引入 jQuery 才能使用它。通过使用 jQuery 的...

    JavaFX学习之Preloader

    通过查看和运行这个项目,你可以更深入地理解Preloader的工作原理和如何自定义预加载界面。 在实际开发中,Preloader可以用来加载资源、初始化数据或者执行其他后台任务,从而减轻主应用程序启动时的负担,提高用户...

    simple-image-preloader:一个简单的网页图片预加载器

    - 进度反馈:整个预加载过程可以提供进度反馈,如通过更新加载进度条或显示已加载图片的数量。 4. 应用与集成: - 在项目中引入:你可以将`simple-image-preloader`库引入到HTML文件中,或者通过模块化工具(如...

    jQuery CSS3网页预加载动画代码.zip

    在网页设计中,预加载(Preloader)是一种常见的优化用户体验的策略,它允许用户在页面完全加载之前看到一个视觉反馈,表明内容正在加载。"jQuery CSS3网页预加载动画代码.zip" 包含了一个实现这一功能的代码示例,...

    图片预加载、占位背景图jquery plugin

    图片预加载技术是一种优化网页性能的方法,特别是在网页中包含大量图片时显得尤为重要。它通过在用户实际看到图片之前提前下载图片资源,确保图片能够快速显示,从而提高用户体验。`jQuery-preloading-with-image`是...

    Loading进度条

    2. **Ball Pen Ink Preloader**: 这个加载进度条的设计创意十足,可能以一支正在写字的圆珠笔为主题,随着加载的进行,仿佛笔尖上的墨水逐渐流淌出来,形象地表示数据的加载过程,既直观又富有艺术感。 3. **Beer ...

    Android代码-Android页面启动速度优化:在页面打开之前就预加载数据

    PreLoader: Make your activity launch faster changelog 中文文档 Pre-load data before Activity opens, and display data on UI after UI initialization. Speedup Activity launch You can start a PreLoader...

    image-preloader:预加载图像

    标题“image-preloader:预加载图像”暗示我们讨论的是一个用于JavaScript的库,专门处理图像预加载的问题。这个库被称为“image-preloader”,它的目标是提前加载页面所需的图像资源,以便用户在访问时可以更快地...

    preloader.html

    3个div和极简的代码实现纯div+css“加载中”效果,仅支持高级浏览器。可自定义样式,直接复制粘贴可用。

    小巧的jQuery页面预加载指示器插件

    预加载指示器通常包括一系列动画效果,如旋转的圆环、滚动的条形、填充的进度条等,这些视觉元素在页面资源加载时显示,待页面完全加载完毕后自动消失。preloader插件提供了预定义的加载动画样式,开发者可以根据...

    aframe-preloader-component:预加载栏会在场景资产加载时自动显示

    modal progressValueAttr 进度条的属性,用于在更新进度时设置咏叹调barProgressStyle 目标CSS样式设置为条形上的百分比宽度酒吧目标CSS样式设置为条形上的百分比宽度标签预加载器中的html标签类-用于设置百分比#...

    在React Native中使用自定义图标弹跳预加载器组件-JavaScript开发

    https://dribbble.com/shots/4423936-Islands-Preloader-Animation Demo htt使用自定义的React Native弹跳预加载器弹跳预加载器组件React Native中的图标基于Dany Rizky拍摄的运球:...

    preload.js图片预加载插件

    图片预加载插件。包含有序加载和无序加载两种。具体使用方法,参考https://blog.csdn.net/yang1393214887/article/details/92582715

Global site tag (gtag.js) - Google Analytics