在网上看到好多关于flex preloader,但是有的不是很理想,其中有一个加载flash的,组件都初始化结束了,那flash还在那里动.
最近也用到这个preloader,把它改造了一下,加载完flash后在显示组件,
package com.preload
{
import flash.display.Loader;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.geom.Point;
import flash.utils.ByteArray;
import flash.utils.Timer;
public class WelcomeScreen extends Loader
{
[Embed(source="../asserts/welcome.swf", mimeType="application/octet-stream")]
public var WelcomeScreenGraphic : Class;
public var timer : Timer;
private var fadeInRate : Number = .01;
private var fadeOutRate : Number = .02;
private var timeAutoClose : int = 100;
public var ready : Boolean = false;
public var COMPLETE_EVENT : String = "complete";
private var completeFlag : Boolean = true;
public function WelcomeScreen()
{
this.visible = false;
this.alpha = 0;
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(completeFlag)
{
if(this.alpha < 1) this.alpha = this.alpha + this.fadeInRate;
this.stage.addChild(this);
var point : Point = new Point();
this.x = this.stage.stageWidth/2 - this.width/2;
this.y = this.stage.stageHeight/2 - this.height/2;
this.visible=true;
completeFlag = false;
}
if (this.ready && timer.currentCount > this.timeAutoClose)
closeScreen();
}
public function closeScreen():void
{
timer.removeEventListener(TimerEvent.TIMER, updateView);
timer.addEventListener(TimerEvent.TIMER, closeScreenFade);
}
public function closeScreenFade(event : TimerEvent):void
{
timer.stop();
this.parent.removeChild(this);
dispatchEvent(new Event(COMPLETE_EVENT));
}
}
}
package com.preload
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import mx.events.*;
import mx.preloaders.DownloadProgressBar;
public class CustomPreloader extends DownloadProgressBar {
public var wcs:WelcomeScreen;
public function CustomPreloader()
{
super();
wcs = new WelcomeScreen();
this.addChild(wcs)
}
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);
this.wcs.addEventListener(wcs.COMPLETE_EVENT, wcsComplete);
}
private function SWFDownloadProgress(event : ProgressEvent):void {}
private function SWFDownloadComplete(event : Event):void {}
private function FlexInitProgress(event : Event):void {}
private function FlexInitComplete(event : Event):void
{
wcs.ready = true;
}
private function wcsComplete(event : Event) : void
{
wcs.ready = true;
dispatchEvent(new Event( Event.COMPLETE));
}
}
}
flash动画就不上传了.望大家参考.
分享到:
相关推荐
美丽的Flex Preloader控件,页面预加载效果 美丽的Flex Preloader控件,页面预加载效果 美丽的Flex Preloader控件,页面预加载效果 美丽的Flex Preloader控件,页面预加载效果
在Flex应用程序开发中,用户首次启动应用时会看到一个加载屏幕,这个屏幕通常被称为预加载器(Preloader)。预加载器的主要目的是显示应用程序加载的进度,同时为用户提供一种视觉反馈,让他们知道程序正在准备运行...
在Flex应用中,"预加载器"(preloader)是程序启动时显示的一个组件,它的主要功能是在用户等待整个应用程序完全加载时提供反馈。预加载器通常会显示一个进度条,以指示应用程序资源的加载进度。 在“flex自定义...
首先,Flex应用程序的启动始于`preloader`阶段,系统管理器(SystemManager)随之创建。SystemManager是Flex应用的核心管理者,它负责应用程序窗口、Application实例、弹出窗口、光标管理,以及ApplicationDomain中的...
在SWF文件下载过程中,SystemManager负责创建Preloader和DownloadProgressBar,这两个组件跟踪下载进度。当第一帧的数据接收完成后,SystemManager触发进入第二帧的事件,接着进行后续的加载和初始化操作。 总的来...
在 Flex 启动过程中,SystemManager 会创建一个加载器(Preloader),用于加载应用程序所需的资源。加载器是一个 2 帧的 MovieClip,第一帧用于创建加载器,第二帧用于加载应用程序。加载器的外观是通过代码绘制的。...
3.2.2 Preloader 3.2.3 Application的作用和主要属性 3.2.4 通过SWFLoader加载Application 3.2.5 域及跨域访问 3.3 Flex Module 3.3.1 创建模块 3.3.2 模块的编辑与编译 3.3.3 模块文件的...
3.2.2 Preloader 3.2.3 Application的作用和主要属性 3.2.4 通过SWFLoader加载Application 3.2.5 域及跨域访问 3.3 Flex Module 3.3.1 创建模块 3.3.2 模块的编辑与编译 3.3.3 模块文件的...
首先,`Preloader.as` 是一个常见的Flex组件,它负责在应用程序加载之前显示进度条,提高用户体验。在处理桌面背景这样的任务时,可能用到预加载器来确保所有必要的资源(如图片或皮肤)在改变桌面背景前已完全加载...
3.2.2 Preloader 90 3.2.3 Application的作用和主要属性 95 3.2.4 通过SWFLoader加载Application 97 3.2.5 域及跨域访问 99 3.3 Flex Module 101 3.3.1 创建模块 102 3.3.2 模块的编辑与编译 104 3.3.3 模块...
- **自定义Preloader**:创建自定义预加载器以增强用户体验。 - **自定义图表组件**:根据业务需求设计和实现定制化的图表组件。 - **高级皮肤专题**:深入探讨如何使用Flex Skin框架为组件创建自定义外观。 - **...
Flex应用的根对象是SystemManager,这是一个Display Class,继承自flash.display.MovieClip,使得预加载器(Preloader)和应用程序(Application)可以在两个不同的帧中运行。SystemManager有一个...
此外,还设置了背景颜色和自定义加载进度条(“preloader”),这些都展示了Flex的自定义和灵活性。 在组件和类的导入部分,我们可以看到Flex与Esri的ArcGIS Flex API的集成,这表明这个应用可能是一个地理信息系统...
压缩包中的文件名“simple_preloader_2307”可能是一个简单的预加载器(preloader)示例。在Flex应用中,预加载器是加载应用程序的主要组件,它在主应用程序完全加载之前显示进度,以提高用户体验。这个文件可能是用...
可以使用`Preloader`类或自定义的预加载策略来实现。 总结,Flex图片显示涉及了`Image`组件、动态加载、图片处理、优化策略等多个方面。通过深入理解这些知识点,开发者能够创建出功能丰富、性能优秀的Flex应用程序...
从描述来看,这是一个适用于FlashMX或Flex的网站加载(preloader)源码,具有金属质感的视觉效果。在网页设计中,预加载器是一种在页面完全加载之前显示的动画,它有助于提升用户体验,让用户知道网站正在加载而不是...
preloader帧用于显示应用程序的加载进度,一旦加载完成,进入Application帧,就会创建并初始化Flex的主应用程序(Application类的实例)。这个过程中,Flex应用会经历以下几个关键阶段: - preinitialize:应用实例...
display: flex; justify-content: center; align-items: center; background-color: rgba(0, 0, 0, 0.5); z-index: 9999; } .preloader__spinner { width: 50px; height: 50px; border: 3px solid #fff; ...
网上找了很多都不完整,上传一个工程给大家分享,采用子类加载swf或者gif的方式显示loading ,gif或者swf文件可以随意换成自己喜欢的。...压缩包内容:preloader和button两种方式显示loading fex3源码
5. **优化加载**: 为了提高性能,可以利用Flex的模块预加载策略,如使用`Preloader`类来控制模块的加载顺序和时机。同时,可以考虑使用`swfobject`等库来实现渐进式增强,让不支持Flash的用户也能访问部分内容。 6....