组件的初始化顺序:
preinitialize
在所有的初始化之前触发,没有子组件的定义,但是可以引用组件的变量.
initialize
当所有子组件生成完成后触发,在这个时间点还没有组件被渲染出来.
creationComplete
组件定义完成并已经在显示列表.
applicationComplete
所有的组件初始化完成并显示;只适用于Application组件。
先考虑四个关键字,在考虑组件的内外层关系。
preinitialize按组件从外向内执行。
initialize、creationComplete按组件从内向外执行。
某组件的preinitialize事件发生后其id才能被其他的组件使用(即id的构造从外向里)。
某组件的initialize事件发生后才给此组件的其他属性赋值。
看下面的例子:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="1024" minHeight="768"
preinitialize="a1();" initialize="b1();"
creationComplete="c1();" applicationComplete="d1();">
<fx:Script>
<![CDATA[
private var i:int = 0;
private function a1():void{
trace("a1");
}
private function a2():void{
trace("a2");
trace("+++" + labelID + "+++");
}
private function a3():void{
trace("a3");
trace("***" + labelID + "***");
}
private function b3():void{
trace("b3");
}
private function b2():void{
trace("b2");
}
private function b1():void{
trace("b1");
}
private function c3():void{
trace("c3");
}
private function c2():void{
trace("c2");
}
private function c1():void{
trace("c1");
}
private function d1():void{
trace("d1");
}
public function text3():String{
trace("==="+labelID+"===");
i++;
trace("呵呵呵" + i);
return "哈哈" + i;
}
]]>
</fx:Script>
<mx:Panel preinitialize="a2();" initialize="b2();" creationComplete="c2
();" >
<mx:Label id="labelID" text="{text3()}" preinitialize="a3
();" initialize="b3();" creationComplete="c3();"/>
</mx:Panel>
</s:Application>
输出结果为:
===null===
呵呵呵1
a1
a2
+++null+++
a3
***ss.ApplicationSkin2._ApplicationSkin_Group1.contentGroup.Panel5.labelID***
b3
===ss.ApplicationSkin2._ApplicationSkin_Group1.contentGroup.Panel5.labelID===
呵呵呵2
b2
b1
c3
c2
c1
d1
为了便于理解Flex里面组件的事件是如何发生的,我写了这么一些代码:
mxml:
<mx:Something ......
addedToStage="trace('addedToStage')"
creationComplete="trace('creationComplete')"
enterFrame="if (!enterframeflag) {trace('enterFrame'); enterframeflag=true;}"
initialize="trace('initialize')"
preinitialize="trace('preinitialize')"
resize="trace('resize')"
show="trace('show')"
/>
然后再debug模式下运行,输出结果如下:
preinitialize
initialize
enterFrame
resize
[SWF] C:\Documents and Settings\polo\Desktop\study\testmenu\bin-debug\testmenu.swf - 877,825 bytes after decompression
creationComplete
addedToStage
再运行一次:
preinitialize
initialize
[SWF] C:\Documents and Settings\polo\Desktop\study\testmenu\bin-debug\testmenu.swf - 877,825 bytes after decompression
enterFrame
resize
creationComplete
addedToStage
[SWF]一行是解压过程,可以忽略不计。
剩下的内容就是组件事件的发生顺序了。
预初始化->初始化->进入桢->改变大小->创建结束->添加到场景。
而show事件没有发生。
分享到:
相关推荐
这个"Flex 预加载动画demo"是Flex应用中的一个实例,它展示了如何自定义预加载进度条动画,使得用户在等待应用程序加载时能有一个更友好的交互体验。 预加载是任何富媒体应用程序的关键部分,因为它确保了所有必要...
flexBulider页面加载动态图片的显示
根据给定的信息,我们可以深入探讨Flex中的异步加载Tree组件的相关知识点。 ### 一、Flex与AsyncTree组件 #### 1. Flex简介 Flex是一种开源的框架,用于构建跨平台的桌面应用程序和移动应用程序。它提供了强大的...
很详细的实现了flex游戏的预加载,可以使用图片,也可以重绘技术,任你选择
flex 动态加载css文件方法总结,增加flex的界面美化效果。简单易懂,易操作。
Flex中加载SWF方法,介绍了flex 对 swf 加载和处理
在本案例中,我们将深入探讨如何使用Flex与ArcGIS结合,加载天地图2.0的地图源码。 天地图是由中国国家测绘局主导的国家级地理信息公共服务平台,提供丰富的测绘地理信息资源,包括地图、影像、地形、地名等。天...
在本文中,我们将深入探讨如何在Flex...总结来说,自定义Flex加载条是一项涉及组件样式、模板、动画和事件处理的综合工作。通过学习和实践这个示例,你可以掌握如何根据项目需求定制出独特的加载条组件,提升用户体验。
在本文中,我们将深入探讨“Flex CSS动态加载”这一主题,这是前端开发中一个非常重要的概念,尤其是在构建响应式和高性能的Web应用时。Flex CSS允许我们动态地改变页面布局,根据用户行为或屏幕尺寸调整元素的位置...
尤其是对某些特殊考核部位和对运动过程中试件的加载,在考虑到其加载变形和自身运动的情况下单纯的用力控和位控作动筒达不到加载要求,为了解决该类问题,提出基于FlexTest 加载控制系统的外接式位移传感器实时控制...
4. `说明文件.html`: 这个文件应该提供了关于如何使用或实现这个自定义预加载器的详细说明,包括如何集成到Flex项目中以及任何必要的配置步骤。 5. `Colorwheel Preloader.swf`: 这是编译后的SWF文件,是最终运行在...
本文将深入探讨Flex实时加载Skin的概念、方法以及相关的技巧。 一、Flex皮肤系统概述 Flex提供了一种强大的皮肤系统,允许开发者自定义组件的外观,而无需更改组件的核心功能代码。通过更换皮肤,开发者可以快速...
### Flex延迟加载问题说明处理实现 #### 一、引言 在现代Web开发中,为了提升用户体验和系统性能,开发者常常采用各种优化技术。其中,延迟加载(Lazy Loading)是一种非常实用的技术,它允许资源(如图片、脚本等...
总结 Flex中读取XML文件的方法各有优劣。XMLLoader适合异步加载,提高用户体验;XMLDocument则提供错误处理和安全的XML解析;E4X则以其简洁的语法吸引开发者。选择哪种方法取决于具体的应用需求,如数据量、性能要求...
总结来说,"FLEX动态加载Model"涉及到如何在运行时高效地获取和管理应用程序的数据,这既包括技术实现,也包括最佳实践。通过理解并掌握这一技术,开发者可以创建更加灵活、响应迅速的FLEX应用程序。
Flex学习与总结 Flex是一种用于构建富互联网应用(RIA)的开发框架,由Adobe公司提供。RIA技术旨在提升网络应用的交互性和表现力,克服传统HTML页面在用户体验上的局限。随着网络带宽的提高,RIA逐渐成为互联网应用...
这篇文章将深入探讨关于使用Flex和Flash生成SWF文件时所遇到的加载(体积)问题。SWF是Adobe Flash Player用于播放多媒体内容的文件格式,通常包含了动画、音频、视频和交互式元素。 Flex是一个开源的开发框架,...
flex 的基础入门书+flex组建大全(component explorer),帮你尽快走进flex
Flex加载进度流程图以及说明文字,通过它可以粗线条体了解Flex工程师的设计思路。
本文将详细讲解如何利用ArcGIS for Flex API来加载高德地图,帮助开发者实现地图服务的集成。 ArcGIS for Flex是Esri公司提供的一种基于Adobe Flex的开发工具,它允许开发者构建具有地图功能的Web应用程序。Flex是...