- 浏览: 271762 次
- 性别:
- 来自: 黑龙江省
文章分类
最新评论
-
leipan19890705:
AS调用JS里的呢?有没有?我的一直不成功。
JavaScript与ActionScript交互简单实例 -
newLinuxJava:
补充一下,windows7 日志配置文件的位置:Microso ...
Flex debug环境构建 -
ye_wx:
要加哪些jar包呢?麻烦列出来行吗
Java---POI--操作PPT -
brightACE:
不错,学习了
JavaScript与ActionScript交互简单实例 -
se7en8974:
留个言,回去看看。
推荐一个学习Flex chart的好网站
看见很多flex站点都应用了自定义的装载页面,网上搜索了一下,找到了一个方案。
1,在src目录下建立自定义类,两个文件代码如下:
Preloader.as
package com.preloader { import mx.preloaders.DownloadProgressBar; import flash.display.Sprite; import flash.events.ProgressEvent; import flash.events.Event; import mx.events.FlexEvent; import mx.managers.SystemManager; import mx.managers.BrowserManager; import flash.utils.Timer; import flash.events.TimerEvent; public class Preloader extends DownloadProgressBar { public var m_Progress: ProgressBar; private var m_Timer: Timer; public function Preloader(): void{ super(); var browser: BrowserManager; m_Progress = new ProgressBar; this.addChild(m_Progress); m_Timer = new Timer(1); m_Timer.addEventListener(TimerEvent.TIMER, timerEventHandler); m_Timer.start(); } override public function set preloader(value:Sprite):void{ value.addEventListener(ProgressEvent.PROGRESS, progressEventHandler); value.addEventListener(Event.COMPLETE, completeEventHandler); value.addEventListener(FlexEvent.INIT_PROGRESS, initProgressEventHandler); value.addEventListener(FlexEvent.INIT_COMPLETE, initCompleteEventHandler); } private function progressEventHandler(event: ProgressEvent): void{ var progress: Number = event.bytesLoaded / event.bytesTotal * 100; if (m_Progress){ m_Progress.progress = progress; } } private function timerEventHandler(event: TimerEvent): void{ this.stage.addChild(this); var width: Number = this.stage.stageWidth * 40 / 100; // Get 40% for the Stage width // Set the Position of the Progress bar to the middle of the screen m_Progress.x = (this.stage.stageWidth - m_Progress.getWidth()) / 2; m_Progress.y = (this.stage.stageHeight - m_Progress.getHeight()) / 2; m_Progress.refreshProgressBar(); } private function completeEventHandler(event: Event): void{ var i: int = 0; } private function initProgressEventHandler(event: FlexEvent): void{ var i: int = 0; } private function initCompleteEventHandler(event: FlexEvent): void{ m_Progress.ready = true; m_Timer.stop(); this.dispatchEvent(new Event(Event.COMPLETE)); } } }
ProgressBar.as
package com.preloader { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Graphics; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.geom.Matrix; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; import flash.utils.ByteArray; import mx.controls.Label; import mx.graphics.codec.PNGEncoder; public class ProgressBar extends Loader { // Logo picture [Embed(source="icon/loader.png")] [Bindable] private var logoClass: Class; private var Logo: Bitmap; private var m_Ready: Boolean; private var m_Progress: Number; private var m_BitmapData: BitmapData; // Constant to change to fit your own layout private static var ProgressWidth: int = 150; // Progress bar width private static var PictureWidth: int = 48; // Logo picture width private static var LeftMargin: int = 1; // Left Margin private static var RightMargin: int = 1; // Right Margin private static var Spacing: int = 10; // Spacing between logo and progress bar private static var TopMargin: int = 1; // Top Margin private static var BottomMargin: int = 1; // Bottom Margin private static var PictureHeight: int = 48; // Logo picture height private static var ProgressHeight: int = 12; // Progress bar height private static var ProgressBarBackground: uint = 0xFFFFFF; private static var progressBarOuterBorder: uint = 0x323232; private static var ProgressBarColor: uint = 0xFF4707; private static var ProgressBarInnerColor: uint = 0xFFFFFF; public function ProgressBar(): void{ super(); m_Progress = 0; Logo = new logoClass as Bitmap; this.addEventListener(Event.RENDER, renderEventHandler); } private function renderEventHandler(event: Event): void{ } public function refreshProgressBar(): void{ m_BitmapData = drawProgress(); // Create the bitmapdata object var encoder: PNGEncoder = new PNGEncoder(); var byteArray: ByteArray = encoder.encode(m_BitmapData); // Encode the bitmapdata to a bytearray this.loadBytes(byteArray); // Draw the bitmap on the loader object } public function getWidth(): Number{ return LeftMargin + PictureWidth + Spacing + ProgressWidth + RightMargin; } public function getHeight(): Number{ return TopMargin + PictureHeight + BottomMargin; } private function drawProgress(): BitmapData{ // Create the bitmap class object var bitmapData: BitmapData = new BitmapData(getWidth(), getHeight(), true, 0); // Draw the Progress Bar var sprite: Sprite = new Sprite(); var graph: Graphics = sprite.graphics; // Draw the progress bar background graph.beginFill(ProgressBarBackground); graph.lineStyle(1, progressBarOuterBorder, 1, true); var containerWidth: Number = ProgressWidth; var px: int = getWidth() - RightMargin - ProgressWidth; var py: int = (getHeight() - ProgressHeight)*2/3; graph.drawRoundRect(px, py, containerWidth, ProgressHeight, 0); containerWidth -= 4; var progressWidth: Number = containerWidth * m_Progress / 100; graph.beginFill(ProgressBarColor); graph.lineStyle(1, ProgressBarInnerColor, 1, true); graph.drawRoundRect(px+1, py+1, progressWidth, ProgressHeight-2, 0); //Construct the Text Field Object and put the progress value in it var textField: TextField = new TextField(); //textField.background = true; //textField.border = true; var format:TextFormat = new TextFormat(); format.font = "Verdana"; format.color = 0x000000; format.size = 10; //format.bold = true; textField.defaultTextFormat = format; textField.text = m_Progress.toFixed(0) + "%"; //Create a BitmapData object and take the Width and height of the TextField text. var textBitmapData: BitmapData = new BitmapData(textField.textWidth + 5, textField.textHeight); //Set the BitmapData object background color to the background color of the progress bar textBitmapData.floodFill(0, 0, ProgressBarBackground); //Draw the TextFiel object in the BitmapData object textBitmapData.draw(textField); //Construct the matrix object //The matrix object is used to place the text var textBitmapMatrix: Matrix = new Matrix(); textBitmapMatrix.translate(px + (containerWidth-textBitmapData.width) / 2, py + (ProgressHeight - textBitmapData.height) / 2-2); var textField1: TextField = new TextField(); var format1:TextFormat = new TextFormat(); format1.color = 0x0b333c; textField1.defaultTextFormat = format1; textField1.text = "系统正在装载,请稍候"; textField1.autoSize = TextFieldAutoSize.LEFT; //Create a BitmapData object and take the Width and height of the TextField text. var textBitmapData1: BitmapData = new BitmapData(textField1.textWidth + 5, textField1.textHeight); //Set the BitmapData object background color to the background color of the progress bar textBitmapData1.floodFill(0, 0, ProgressBarBackground); //Draw the TextFiel object in the BitmapData object textBitmapData1.draw(textField1); //Construct the matrix object //The matrix object is used to place the text var textBitmapMatrix1: Matrix = new Matrix(); textBitmapMatrix1.translate(px, 2); //Draw the sprite object on the parent BitmapData bitmapData.draw(sprite); //Draw the text on the parent BitmapData bitmapData.draw(textBitmapData, textBitmapMatrix, null, null, null, false); bitmapData.draw(textBitmapData1, textBitmapMatrix1, null, null, null, false); //Draw the Logo bitmapData.draw(Logo.bitmapData, null, null, null, null, true); return bitmapData; } public function set ready(value: Boolean): void{ m_Ready = value; this.visible = !value; } public function get ready(): Boolean{ return m_Ready; } public function set progress(value: Number): void{ m_Progress = value; } public function get progress(): Number{ return m_Progress; } } }
2,修改你的Application的属性: preloader="com.preloader.Preloader"
3,运行应用,默认的loading已经变成你想要的效果了。
发表评论
-
flash player debuger 版本下载地址
2010-05-24 11:08 1013http://www.adobe.com/support/fl ... -
Flex 强制转换类型失败:
2009-12-05 10:34 3889错误一:无法将....object 转换为 mx.messag ... -
让你的AIR程序脱离AIR环境运行
2009-08-11 12:30 5275让你的AIR程序脱离AIR环境运行 我们都很喜 ... -
推荐一个学习Flex chart的好网站
2009-05-22 01:06 3915最近在做一个与Flex chart相关的项目,特别搜索了一下F ... -
TabNavigator 初始化标签问题
2009-05-21 00:38 2669问题: 我做了一个TabNavigator,里面有2个tab ... -
为什么Module里包含TabNavigator时,卸载再加载时出现错误?
2009-05-18 17:57 1368为什么Module里包含TabNavigator时,卸载再加 ... -
加载多个module,使用PopUpManager问题解决方案
2009-05-18 17:33 1898需求背景:通过树形菜单加载多个不同的module。问题现象: ... -
Flash OBJECT和EMBED标签
2009-02-26 17:16 2075在html中插入swf ... -
flex grid 组件样式
2009-02-25 14:32 3546Grid{ horizontalGap:0; vertic ... -
在flex应用中设定全局模式样式
2009-02-25 02:23 3036通过修改模式的样式,来体验不一样的效果。(from flex ... -
PopUpManager添加特效
2009-02-25 01:22 2705在使用PoPUpManager的过程中,没发现有什么自带的效果 ... -
PopUpManager小例
2009-02-25 01:11 1331PopUpManager简单用例。 思路,定义一个自定义组建- ... -
JS+AS+SWFloader ,html页面中动态加载SWF文件
2009-02-24 17:01 6610这其实就是一个js调用as的一个实例。在html中动态控制sw ... -
JavaScript与ActionScript交互简单实例
2009-02-24 00:05 4426之前一直在研究AS,虽然对JS与AS通信也充满了好奇。 ... -
Datagrid中添加自定义组件和事件相应
2009-02-23 13:09 1830更具实际应用的需要,常在Datagrid中添加一些组件。比如: ... -
懒人就要lazy------flex3-BlazeDS-Java-Hibernate
2009-02-20 02:30 2446dpHibernate - Hibernate lazy lo ... -
flash chart 汇总
2009-02-16 15:16 1792pen Flash Chart 是一个开源的Flash图表绘制 ... -
ArrayCollection更新单个对象数据
2009-02-15 23:15 1940初始化ArrayCollection private v ... -
Flex 学习资源
2009-01-15 23:08 1286为了学习方便,将一些比较经典的学习资源总结如下。 学习 ... -
Flex 中的元数据标签
2009-01-12 17:36 1126[Style(name="paddingLeft&q ...
相关推荐
在本文中,我们将深入探讨如何在Flex...总结来说,自定义Flex加载条是一项涉及组件样式、模板、动画和事件处理的综合工作。通过学习和实践这个示例,你可以掌握如何根据项目需求定制出独特的加载条组件,提升用户体验。
预加载是任何富媒体应用程序的关键部分,因为它确保了所有必要的资源在应用程序启动时已经完全加载,从而避免了在运行时出现延迟或卡顿。在Flex中,预加载器通常用来显示加载进度,同时隐藏可能由于大文件加载而产生...
创建完自定义进度条后,你可以像使用任何其他Flex组件一样在应用程序中导入并使用它。将其添加到主容器中,设置相关属性,如初始值、最大值等,然后在加载数据时启动进度条。 7. **优化和调试** 为了确保自定义...
在IT行业中,自定义Flex右键菜单是一项常见的需求,它涉及到用户交互体验的优化和界面定制化。Flex是一个基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。在这里,我们主要探讨如何在Flex项目中...
在这个特定的案例中,我们关注的是使用Flex实现的自定义圆形加载进度条。 在Web应用中,进度条是用户界面中常见的一种元素,用于指示某个任务或数据加载的进度。圆形进度条与传统的水平进度条不同,它以圆形图案...
在Flex开发中,`ToolTip`是一种非常实用的界面元素,用于在用户悬停或聚焦某个控件时显示额外的信息。默认情况下,Flex提供了基本的`ToolTip`功能,但有时为了满足特定的设计需求或者提供更丰富的用户体验,开发者...
在IT行业中,FLEX是一种基于ActionScript和Flash技术的开源框架,主要用于构建富互联网应用程序(RIA)。FLEX的用户界面通常包含丰富的交互元素,而等待图标则是这些元素中的一种,用于指示程序正在进行后台处理或...
Flex分页组件是一种在Flex应用程序中用于展示大量数据并分批加载的重要工具。它通过将大量数据分成小块,每次只加载一部分,提高了用户界面的响应速度和用户体验。本组件适用于那些需要显示大量数据,如表格、列表...
通过上述方法和技巧,开发者可以灵活地在Flex应用中实现Skin的实时加载,提升用户体验,同时简化开发和维护工作。在实际项目中,结合项目需求和用户反馈,不断优化和调整皮肤加载策略,将有助于打造更加高效和美观的...
1. 创建图片组件时,有加载提示,并在创建后自动聚焦和进入编辑状态。 2. 鼠标交互操作:单击激活并显示属性设置菜单,按住拖动可移动组件,组件边框显示可编辑的8个操控点。 3. 角点和边的中间点支持不同类型的缩放...
在Flex开发中,加载HTML页面是一项常见的需求,特别是在构建富互联网应用程序(RIA)时。Flex是一种基于Adobe AIR或Flash Player运行时的开放源代码框架,它允许开发者创建交互性强、可自定义的用户界面。而HTML则作为...
在实际开发中,自定义组件的灵活性和可扩展性使得它在构建富互联网应用程序时非常有用。你可以根据项目需求调整`ImageButton`的样式、行为和功能,甚至可以将其作为库的一部分,供整个项目复用。通过深入理解这两份...
综上所述,自定义Flex 3的DownloadProgressBar是一个结合了组件扩展、样式定制、事件处理和业务逻辑的过程。具体实现细节通常会根据实际项目需求而变化,而提供的SWF文件则可能用于增强进度条的视觉反馈。如果要了解...
标题“flex 嵌入文字样式”和描述“flex 嵌入外部文字样式,弥补flex内部字体不足的缺憾”提示我们关注如何在Flex容器中使用自定义或外部字体来增强文本表现力。 首先,让我们了解Flex布局的基本概念。Flex布局允许...
在这里,我们将聚焦于一个专门针对Flex平台的数据可视化工具——AnyChart,探讨如何在Flex应用中集成并使用它,以及它能为我们的项目带来哪些优势。 首先,让我们了解Flex是什么。Flex是Adobe公司推出的一种开源...
我们可以为搜索栏定义一套独特的样式,使其在应用中脱颖而出。 4. **集成自定义组件**: 自定义组件可以通过在Flex项目的MXML文件中引用`<mx:SWFLoader>`或`<s:SWFObject>`标签来加载`searchField.swf`。此外,也...
在Flex应用中,可以通过自定义组件或CSS样式来改变地图的外观和交互行为,例如,更改默认控件的样式,或添加自定义的标记和路径。 综上所述,这个“Flex 4加载Google Map地形图demo”项目旨在展示如何利用Flex 4的...
本篇文章将深入探讨如何在Flex应用中实现自定义的右键菜单,包括两种主要的方法:系统右键菜单的扩展和完全屏蔽系统菜单以创建自定义菜单。 首先,我们来看第一种方法——扩展系统右键菜单。在Flex中,我们可以利用...
这些代码可能包含了如何加载样式表、如何应用样式到组件以及如何创建自定义组件的例子。通过运行这些测试代码,开发者可以直观地看到Vista样式的实际效果,并根据需要进行调整。 "VistaRemix"这个文件名可能是指这...
在工作流程图中,你可以使用MXML来定义图形元素的位置、大小和样式。 2. **ActionScript文件**:ActionScript是Flex的编程语言,用于实现组件的功能和交互逻辑。在工作流程图中,ActionScript可以用来处理用户点击...