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> < ...
随机推荐
- Linux使用——Linux命令——CentOS7防火墙使用
注意:设置防火墙需要使用具有root权限的用户进入: CentOS 7.0默认使用的是firewall作为防火墙: CentOS 7.0使用systemctl来管理服务和程序,包括了service和c ...
- MongoDB 创建索引及其他
索引 以提升查询速度 测试:插入十万条数据到数据库中 for(i=0;i<100000;i++){db.t255.insert({name:'test'+i,age:i})} db.t1.fin ...
- centos 查看USB接口的版本
# lsusbBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 001: ID 1d6b:000 ...
- Restructure output of R summary function
Treat it as a data.frame: set.seed(1)x <- sample(30, 100, TRUE) summary(x)# Min. 1st Qu. Medi ...
- (转载)C# GDI+ 画简单的图形:直线、矩形、扇形等
GDI+是一种绘图装置接口, 当拖动窗体是,窗体发生移动,window默认为从窗体移动到另一个地方,先发生擦除后再重新画一个窗体: 而我们自己动手画的图(如下面的线),不会重新画:在属性中,Paint ...
- jenkins 异常
八月 03, 2017 7:23:54 下午 org.eclipse.jetty.util.log.JavaUtilLog warn 警告: FAILED ServerConnector@29e6eb ...
- C+++string类如何判断字符串为空
string类是C++STL类之一,有很丰富的接口,判断string为空是经常用到的操作. string类为空,实际也就是元素为0个. 可以按照如下方式判断: 1.string类有自己的成员函数emp ...
- Mysql 删除重复数据只保留id最小的
DELETE FROM 表 WHERE id NOT IN ( SELECT id FROM ( SELECT min(b.id) AS id FROM 表 b GROUP BY b.重复字段 ) b ...
- 【UOJ】#273. 【清华集训2016】你的生命已如风中残烛
题目链接:http://uoj.ac/problem/273 $${Ans=\frac{\prod _{i=1}^{m}i}{w-n+1}}$$ #include<iostream> #i ...
- [osg][osgEarth][原]基于OE自定义自由飞行漫游器(初级版)
由于受够了OE的漫游器,想搞个可以在全球飞行的漫游器,所以就做了一个: 请无视我的起名规则······ 类头文件:EarthWalkManipulator.h #pragma once //南水之源 ...