从Flex4兼容模式——>Flex4_Release 迁移问题总结

1、Flex4发布版本 spark.swc默认不能使用兼容模式,编译报错

2、在以前的兼容模式下,默认的主题 spark 能使用 Halo主题的组件属性,但在完全的Flex4编译模式下不能
(1)去掉组件中 spake 主题不存在的属性,使用skinclass属性,并编辑皮肤组件替代(但对于旧有的项目,显然代价太大)
(2)改变项目默认的 Spark 主题,以前大多数的 Halo 主题属性都能使用,不过像:<@ ns: canvas paddingTop="" padding***="" >就不能使用了 ,不过没关系,一般在canvas组件中包含其它的框架组件就能解决。(工程量大大的减小了)
(3)如果是以后新建的组件最好使用 Spark组件 构成,理论上设计与逻辑结构更为自由,不过得努力学习一下skin组件的使用方法了~(这对Developer来说,有点难过)

3、Flex4发布版的 构建路径 中默认使用 “运行时RSL方式”,但程序运行时报错 “Class SparkSkin 不能找到 ……”(头晕 >_< !!!)最后使用 “合并到代码中”先解决问题,日后再解//TODO

4、附加编译参数:-keep-all-type-selectors=true (这个是好东西,一直不清楚如何使用,得好好看看这方面的!!!)
不带这个参数时,运行程序可能报 无法找到 ×××组件外观 Error。烦死了开始时侯,一大堆组件外观不见了。

5、无法解析的空对象…… >_< !!!
在兼容模式下好好的程序 放到Flex4下竟然出现一大堆莫名其妙的 null Object 问题。原因可能是编译机制的改变,使得运行时代码执行顺序发生改变而引起的(注意:只是可能,猜想!)
(1)状态引起的空对象问题。
有时候在父组件中使用到 includein=“ state ”itemcreation=“ imitation ”
子组件使用了creationcomplete=“ init( ) ”
init( ) 方法使用时机不好,子组件还没创建好就执行了init( ) 方法,暂时这样解决:
父组件:includein=“ state ”itemcreation=“ imitation ”creationcomplete=“ init( ) ”(就是把子组件需要创建好后执行的方法放到带状态的父组件执行)
(2)Swc域 引起的空对象问题
不明白Swc域的可以搜搜Applicationdomain 我也解析不好。反正如果划分了 模块的话就有能一起这样的问题。由于每个编译的swc文件运行时都有自己的一个域,主应用程序域 和 Module域,(主应用程序域中理论上应该创建好Module所需的数据,让Module在需要的时候取得,但有时候Module就是拿不到,引起空对象) 这时候只好在主应用程序中显式声明“ 傀儡类”>_< !!! // TODO

6、组件状态显示异常
又是Flex4—Release 问题,当发现组件指定的状态显示不正确时,尝试把组件的那个状态放在 声明的第一个位置,看看是不是正常了。(由状态引起的问题确实令人抓狂 >_< !!!)

7、组件状态不显示
假如6中的方法仍然没有解决好问题,尝试把状态控制的去掉,使用属性Visible=“ isshow ? true : false”控制,尤其建议使用在父组件和子组件都带有状态控制时,修改子组件的状态控制。

8、绑定不是万能的…………
当发现组件绑定的数据没有问题,而组件却问题大大时,手动代码绑定试试!(简直雷倒众生 >_< !)

余下的是spike问题

state (舞台)为何会Null?
Applicationdomain 如何设置?(不要傀儡类了)

posted @ 2010-11-03 17:03 子福当自强 阅读(...) 评论(...) 编辑 收藏
悟道2012