今天遇到棘手问题,设了N个断点跟踪,发现有些数据为空,也就是没有获取到,可在另一个断点是有的,说明顺序有问题。继续追踪,发现MXML文件的几个方法顺序如下:
1、先执行内部组件的方法。
2、再执行initialize()方法。
3、再执行creationComplete()方法。
更让人吐血的是,如果在一个方法中调用了一个RemoteObject.Remotefunction()。并不会立即到Remotefunction里执行。而是把当前方法中的代码先执行完。
还有一个问题想不明白,就是我用ActionSrcipt里的ArrayList的集合的.getItemIndex方法并不能返回as这边的一个对象的索引,这个对象的类我已经和JAVA端绑定了。。不知道为什么。不过先不管了。不知道getItemIndex方法到底是如何实现的,有空时看看他的源码就知道原因了。暂时先用的一种笨方法:
for(var i:int=0; i<subModelCol.length;++i)
{
if(subModelCol.getItemAt(i).subModelId==subModelV.subModelId)
{
modelCbo.selectedIndex = i;
}
}OK,先下班了,明天再看。
本文探讨了MXML文件中组件加载的顺序,并详细分析了initialize()与creationComplete()方法的执行时机。此外,还讨论了RemoteObject.Remotefunction()的执行逻辑以及ActionScript中ArrayList.getItemIndex方法的问题,提供了替代解决方案。
1518

被折叠的 条评论
为什么被折叠?



