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自定义加载进度条”的场景中,开发者可能想要替换Flex默认的Application预加载器,以提供更个性化的用户体验。自定义预加载器可以让开发者自由设计加载界面的外观和交互,例如改变颜色、形状或动画效果,...
在Flex应用程序开发中,用户首次启动应用时会看到一个加载屏幕,这个屏幕通常被称为预加载器(Preloader)。预加载器的主要目的是显示应用程序加载的进度,同时为用户提供一种视觉反馈,让他们知道程序正在准备运行...
在AS3(ActionScript 3)中,预加载通常通过创建自定义的预加载类实现。这个类负责监视主SWF文件的加载进度,更新加载条或者动态文本以显示当前的加载状态。以下是一些AS3预加载类的关键知识点: 1. **Event监听**...
preloader插件提供了多种类型的加载动画,如旋转的加载图标(spinner)、进度条(bar)等。你可以根据项目需求选择适合的样式,或者通过CSS自定义加载动画。例如,你可以创建一个新的CSS类`my-spinner-class`,定义...
预加载控件(Preloader Control)通常是一个小型的自包含SWF,它的任务是在主应用程序加载之前显示进度条和相关状态信息,给用户一个良好的交互体验。 以下是一些关于Flash预加载的关键知识点: 1. **ActionScript...
在`react-native-bouncing-preloader-master`这个压缩包中,你可能会找到一个已经实现的自定义预加载器组件示例。通过研究源代码,你可以更深入地理解上述知识点,并将其应用到自己的项目中。同时,这个例子可以作为...
jQuery.preloader 是一款轻量级的预加载解决方案,它允许开发者轻松地在网站上添加自定义的预加载动画。该插件基于 JavaScript 库 jQuery 构建,这意味着你需要在项目中引入 jQuery 才能使用它。通过使用 jQuery 的...
通过查看和运行这个项目,你可以更深入地理解Preloader的工作原理和如何自定义预加载界面。 在实际开发中,Preloader可以用来加载资源、初始化数据或者执行其他后台任务,从而减轻主应用程序启动时的负担,提高用户...
- 进度反馈:整个预加载过程可以提供进度反馈,如通过更新加载进度条或显示已加载图片的数量。 4. 应用与集成: - 在项目中引入:你可以将`simple-image-preloader`库引入到HTML文件中,或者通过模块化工具(如...
在网页设计中,预加载(Preloader)是一种常见的优化用户体验的策略,它允许用户在页面完全加载之前看到一个视觉反馈,表明内容正在加载。"jQuery CSS3网页预加载动画代码.zip" 包含了一个实现这一功能的代码示例,...
图片预加载技术是一种优化网页性能的方法,特别是在网页中包含大量图片时显得尤为重要。它通过在用户实际看到图片之前提前下载图片资源,确保图片能够快速显示,从而提高用户体验。`jQuery-preloading-with-image`是...
2. **Ball Pen Ink Preloader**: 这个加载进度条的设计创意十足,可能以一支正在写字的圆珠笔为主题,随着加载的进行,仿佛笔尖上的墨水逐渐流淌出来,形象地表示数据的加载过程,既直观又富有艺术感。 3. **Beer ...
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:预加载图像”暗示我们讨论的是一个用于JavaScript的库,专门处理图像预加载的问题。这个库被称为“image-preloader”,它的目标是提前加载页面所需的图像资源,以便用户在访问时可以更快地...
3个div和极简的代码实现纯div+css“加载中”效果,仅支持高级浏览器。可自定义样式,直接复制粘贴可用。
预加载指示器通常包括一系列动画效果,如旋转的圆环、滚动的条形、填充的进度条等,这些视觉元素在页面资源加载时显示,待页面完全加载完毕后自动消失。preloader插件提供了预定义的加载动画样式,开发者可以根据...
modal progressValueAttr 进度条的属性,用于在更新进度时设置咏叹调barProgressStyle 目标CSS样式设置为条形上的百分比宽度酒吧目标CSS样式设置为条形上的百分比宽度标签预加载器中的html标签类-用于设置百分比#...
https://dribbble.com/shots/4423936-Islands-Preloader-Animation Demo htt使用自定义的React Native弹跳预加载器弹跳预加载器组件React Native中的图标基于Dany Rizky拍摄的运球:...
图片预加载插件。包含有序加载和无序加载两种。具体使用方法,参考https://blog.csdn.net/yang1393214887/article/details/92582715