note

6月17日

今天遇到一个这样的问题.一个flex组件的属性总报null错误。

我是在这个组件的createcomplete事件里将它初始化的。

后来发现问题就出在这里。因为createcomplete也是一个

事件,所以这里产生了异步处理。所以后面接着调用组件的

属性时会出错。

另外,createcomplete是在“当组件完成其构建、属性处理、测量、布置和绘制时分派。 ”

我理解就是必须这个组件添加到舞台的时候,它才会执行。

所以,它不能等同于AS组件的构造函数。

之后,我尝试在这个组件里面也添加一个和组件名相同的构造函数,

报错:不能添加同名构造函数。上网查了一下,flex组件不支持构造

函数。这样的话。只能在定义属性的时候初始化一下,或者在用组件

属性之前为这个属性赋值。

这里想到一个问题:

在定义属性的时候初始化和在构造函数里面初始化属性,有什么区别呢,

那个更好一些?目前能想到这些,不确定是否正确。

1、即使在定义属性的时候初始化,它也只属于这个实例。

2、对于值类型,在构造函数里面会方便一些。

3、对于值类型,目前想不到有什么区别,或者那个选择更有好处。

这里可能还是理解有问题。需要深刻理解这个问题。

原文地址:https://www.cnblogs.com/axyz/p/2083445.html