flex自定义preloader预加载进度条
{
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 ) );
}
}
}
{
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();
}
}
}

flex自定义preloader预加载进度条的更多相关文章
- 网站顶部显示预加载进度条preload.js
网站加载的速度快的话,不会显示进度条加载时候的样式. 支持性主流浏览器都支持,ie浏览器需要9以上9也支持. 使用方法 <script src="http://code.jquery. ...
- iOS 自定义任意形状加载进度条(水波纹进度条)
1. 项目中要做类似下面的加载动画: 先给出安卓的实现方式 2.iOS的实现方式参考了下面两位的,感谢. 以任意底部图片为背景的加载动画 和 水波纹动画 最后附上自己的demo
- pace.js – 加载进度条插件
这儿只是简单介绍一下这个插件pace.js. 在页面中引入Pace.js,页面就会自动监测你的请求(包括Ajax请求),在事件循环滞后,会在页面记录加载的状态以及进度情况.此插件的兼容性很好,可以兼容 ...
- 【Web前沿技术】纯 CSS3 打造的10个精美加载进度条动画
之前向大家介绍8款优秀的 jQuery 加载动画和进度条插件,今天这篇文章向大家推荐10个纯 CSS3 代码实现精美加载进度条动画效果的方案.加载动画和进度条在网站和 Web 应用中的使用非常流行,特 ...
- iOS UIWebView 加载进度条的使用-WKWebView的使用,更新2017.6.26
1.由于项目中加载网络插件,直接使用了webview加载.使用了三方NJKWebViewProgress进度条的使用,近期在测试时发现,网络缓慢时出现白屏,有卡顿现象. 于是采用了WKWebView进 ...
- pace.js – 网页自动加载进度条插件
网站顶部的页面加载进度条是怎么实现的,页面的加载进度百分比,有时候获取是比较麻烦的,当然也可以利用一些优秀的JavaScript插件来实现,今天就为大家介绍这样子的一款插件:pace.js. [官方网 ...
- 【原生JS插件】LoadingBar页面顶部加载进度条
先展示一下已经实现的效果: 预览地址:http://dtdxrk.github.io/js-plug/LoadingBar/index.html 看到手机上的浏览器内置了页面的加载进度条,想用在pc上 ...
- 《C/C++实现Console下的加载进度条模拟[美观版]》
前言 有时候我们会遇到在CMD或DOS控制台上出现的加载进度条,虽然不是如网页和软件写的美观.但确确实实也有着自己的特色.而且,一个好看的加载进度条也能增加用户使用控制台程序的体验!所以,拿来研究 ...
- css3 linear-gradient实现页面加载进度条效果
最终效果图: html结构: <div> <p class="p1"> <span></span> < ...
随机推荐
- uniGUI试用笔记(二)
前几天做的demo今天启动后,浏览器打开页面后死活不显示窗体,找了半天原因才发现是360浏览器启动了兼容模式,改成极速模式后就正常了.有点晕.... 今天简单测试了TUniGUIServerModul ...
- (转)Redis & EhCache
(二期)6.redis与ehcache综合讲解 [课程六]ehcache简介.xmind0.1MB [课程六]redis的高可用.xmind0.1MB [课程六]redis的...结构.xmind0. ...
- SSM到Spring Boot从零开发校园商铺平台
项目目的 特别 由于准备春招,所以希望各位看客方便的话,能去github上面帮我Star一下项目 https://github.com/Draymonders/Campus-Shop emmm, 已经 ...
- Visual Question Answering with Memory-Augmented Networks
Visual Question Answering with Memory-Augmented Networks 2018-05-15 20:15:03 Motivation: 虽然 VQA 已经取得 ...
- $on在构造器外部添加事件(通过$emit进行外部调用)$once执行一次的事件(通过$emit进行外部调用)$off关闭事件
$on 在构造器外部添加事件. $on接收两个参数,第一个参数是调用时的事件名称,第二个参数是一个匿名方法. 如果按钮在作用域外部,可以利用$emit来执行. html <div id=&quo ...
- [quartz] - Cron表达式举例
Quartz是一个任务调度框架.比如你遇到这样的问题 想每月25号,信用卡自动还款 想每年2月14日自己给当年暗恋女神发一封匿名贺卡 想每隔1小时,备份一下自己的SpringCloud学习笔记到云盘 ...
- [nginx] - 使用nginx实现反向代理,动静分离,负载均衡,session共享
反向代理概念 先说正向代理,比如要访问youtube,但是不能直接访问,只能先找个FQ软件,通过FQ软件才能访问youtube. FQ软件就叫做正向代理.所谓的反向代理,指的是用户要访问youtube ...
- 使用python+ffmpeg+youtube-dl下载youtube上的视频
一.准备工作 1.安装python,详见https://www.cnblogs.com/cnwuchao/p/10562416.html 2.安装ffmpeg,详见https://www.cnblog ...
- vue中click阻止事件冒泡,防止触发另一个事件
在使用el-upload组件时,在其中放置了一个删除按钮的图片. 当点击图片,本想只删除上传的视频,但是意外触发了el-upload中的事件 解决办法:用stop,结果只删除当前预览,不触发上传事件. ...
- IIS客户端没有权限
运行CMDicacls c:\ /setintegritylevel M