加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【以前的日志】Flex 组件控件加载顺序心得

发布时间:2020-12-15 01:18:43 所属栏目:百科 来源:网络整理
导读:?http://hi.baidu.com/flexvsjava/blog/item/1b400a259152be09918f9d87.html 学过面向对象编程的人,对FLEX都会,有一些很熟悉的感触。因为FLEX,其实也可以归纳为面向对象编程,而其中的每一个组件,每一个控件,其实都是一个对象,而它的id,我们就可以理

?http://hi.baidu.com/flexvsjava/blog/item/1b400a259152be09918f9d87.html

学过面向对象编程的人,对FLEX都会,有一些很熟悉的感触。因为FLEX,其实也可以归纳为面向对象编程,而其中的每一个组件,每一个控件,其实都是一个对象,而它的id,我们就可以理解为对象的引用。

?????? 的是,FLEX,除了代码块以外,使用了组件和AS脚本融合的编译流程,这里就涉及到,组件和方法加载顺序的讨论了。

?????? 不管是AS,还是mxml,基本的执行顺序,自上而下,自组件到脚本。

?????? 具体的说,当我们加载一个mxml页面的时候,

??????? 第一步,它会创建最外层组件

?????? 第二步,加载最外层组件属性,包括事件监听等一系列写在<>标签内的 属性

?????? 第三步,加载最外层组件绑定数据(在有绑定的情况下)

衍生处理问题1:在加载组件的时候如果有绑定数据,就会和组件一起加载进来,如果此时数据没有

赋值 报空,这就是为什么,有些人 在init()方法里赋值了 可还是报空的原因。

2·而未绑定的数据 在组建加载的时候 不会显示。我们知道Flex 没有页面的刷新,只有数据的刷新不像网页编程可以刷新页面,所以当组件加载完后 它是什么样的 就会是什么样的 ,如果有初始值的 我们需要绑定 并在加载页面前 给页面赋值

?????? 第四步,加载内部组件(注意:此时最外部组件加载并未执行完毕,它只执行了<>,而没有执行</>)

?????? 第五步,内部组件加载(顺序同上)

?????? 第六步,执行creationComplete="init()" 方法

衍生问题3:?? 这个方法是在组建,加载完后执行的,所以 在外部调用的时候如果并未创建该组件对象,一定会报空。

?????? 第七步,执行脚本方法

执行脚本细说:如果你常用DeBUG调试,大多数人都会单步看脚本执行结果,很少有人看,中间进入的AS源程序,建议看一看,那就是,FLEX 执行脚本的核心所在,我们外部使用的脚本语言都是调用内部的方法,在内部与组件进行交互,而不是独立的,也不是一行一行单步走的

衍生问题4 ,方法调用。 我们在调用服务器端方法的时候,我们会调用 RemoteObject 点出方法 后调用,习惯其他编程语言的来,自然的会认为,我调用完 ro.getInitFiles(); (举例方法)之后,服务器段这个方法就执行完了 ,那么我们 接着写的 语句 就可以认为这个方法已经执行过了,其实错了!

Flex 有一套与其他语言交互的环节,所以 每提供一个 RemoteObject 方法 它都有相应的 resultHander

我们在调用方法之后,其实并不是执行服务器端的代码,而是转入FLEX 后台的交互,而方法正真执行完 是在 resultHander 之后,所以 我们写任何方法 都需要把返回值 返回处理 写在 resultHander 里 。

这就是解决 FLEX 页面数据及时刷新的根本所在!

?????? 第八步,结束组件加载。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读