flex java结合页面初始化

initialize="view1_initializeHandler(event)"


 在容器里我用这个方法初始化,然后调用remoteObjec访问java方法,返回个结果

              var reObj:RemoteObject=new RemoteObject();
                reObj.destination="initdService";
                reObj.endpoint="http://localhost:8080/BL/messagebroker/amf";
                reObj.findHotPicList();
                reObj.addEventListener(ResultEvent.RESULT,function(re:ResultEvent):void{
                    re.stopImmediatePropagation();
                    hotPicList=ArrayCollection(re.token.result);
                });
                if(hotPicList!=null){*****}

 可是为什么总是第一次没结果,但是看java控制台确实已经调用了,只有再进这个页面时结果才出来。

var reObj:RemoteObject=new RemoteObject();  
reObj.destination="initdService";  
reObj.endpoint="http://localhost:8080/BL/messagebroker/amf";  
reObj.findHotPicList();  
reObj.addEventListener(ResultEvent.RESULT,function(re:ResultEvent):void{  
    re.stopImmediatePropagation();  
    hotPicList=ArrayCollection(re.token.result);  
    if(hotPicList!=null){*****}  //注意, 这里不要用this
});  

那个最后一行的 if 应该在 funtion 里面吧?第7行的后面

不是应该, 而是如果按照他的意思,需要做下一步业务操作的话.是必须放在回调方法体内的

只能调试一下了,看数据到前台了没有,如果数据已经到了前台那就是数据绑定或者组件刷新的问题了,没别的办法了

var reObj:RemoteObject=new RemoteObject();  
reObj.destination="initdService";  
reObj.endpoint="http://localhost:8080/BL/messagebroker/amf";  
reObj.findHotPicList();  //获取热门图片列表????
reObj.addEventListener(ResultEvent.RESULT,function(re:ResultEvent):void{  
    re.stopImmediatePropagation(); 
    //这里获取到的列表放到 hotPicList 集合中
    hotPicList=ArrayCollection(re.token.result);  
});  

// 这里注意下, 他的执行,并不是等获取到列表后才执行的,当你执行完 reObj.findHotPicList(); 之后, 他紧接着就执行了.第一次执行的时候,你还没有获取result ,
所以他是空的, 但是第二次就不一样了. 第二次执行的时候, 还是执行完reObj.findHotPicList(); 立马就执行 判断 , 但是前提,你第一次已经把结果放到 这个hotPicList 变量中了. 你可以试试 把这个变量定义到局部变量中,别放在页面上.比如放到当前的方法体内, 我敢肯定,你执行多少次 无论你执行多少次, 这个判断永远都是false
if(hotPicList!=null){*****}

ResultEvent 不是上一次的结果, 你不太了解flex 的事件机制

可以这么比喻:
你回家,进门第一件事,就是吩咐媳妇做饭,你要吃饭,然后说完话,你就走向餐桌,结果发现饭没有做好.

然后你出门去玩了一会儿,又进家门,再吩咐媳妇做饭,然后径直走向餐桌,发现饭已经做好了.

正确的思路应该是: 你进门, 吩咐媳妇做饭,你应该等媳妇做好饭,再去餐桌用餐.

就是说,你这个返回个list然后显示在页面里 这段操作时间段不正确. 放在回调方法体内执行才行.

或者你就把那个list [Bindable] 这样 绑定后. 等饭做好.自然会给你端到桌子上,你什么也不需要做.就等着吃饭就行