Apache flex 视图转换疑难解答

Apache flex 视图转换疑难解答,apache-flex,actionscript-3,sqlite,Apache Flex,Actionscript 3,Sqlite,我在应用程序的每个视图中从异步数据库加载图像 我正在使用Pop/PushView中的视图转换在视图之间进行更改 问题:图像在ViewTransition完成后加载,而不是之前加载 解决方案 以及守则: private function NextView():void { selectStmt = new SQLStatement(); selectStmt.sqlConnection = conn; var sql:String = "SELECT rowid, List, CAST(Image

我在应用程序的每个视图中从异步数据库加载图像

我正在使用Pop/PushView中的视图转换在视图之间进行更改

问题:图像在ViewTransition完成后加载,而不是之前加载

解决方案

以及守则:

private function NextView():void
{
selectStmt = new SQLStatement();
selectStmt.sqlConnection = conn;
var sql:String = "SELECT rowid, List, CAST(Image AS ByteArray) AS Image FROM Data 
WHERE rowid = @nextPage" ;
selectStmt.parameters["@nextPage"] = nextPage;   // Id of next record
selectStmt.text = sql;
selectStmt.addEventListener(SQLEvent.RESULT, selectResult);
selectStmt.addEventListener(SQLErrorEvent.ERROR, selectError);
selectStmt.execute();

navigator.pushView(NextView, nextPage, null, nextViewTransition);
}

private function selectResult(event:SQLEvent):void
{       
selectStmt.removeEventListener(SQLEvent.RESULT, selectResult);
selectStmt.removeEventListener(SQLErrorEvent.ERROR, selectError);

var result:SQLResult = selectStmt.getResult(); 

if (result.data != null) 
{
    resultArray = new ArrayCollection(result.data);
    rowid = result.data[0].rowid;
    listName = result.data[0].List;
    viewImage = result.data[0].Image; 
    pageImage.source = viewImage;
}
}

只有在从数据库中获取图像后才能推送视图?

这是一个明显的问题,对吗?所以我尝试了几种不同的方法,但我也有同样的运气。我可以在图像源上设置什么类型的事件侦听器?mxml有一个change属性,以及其他一些有用的属性,但是在ActionScript中调用了PushView。我正在尝试循环使用相同的代码,以用于push和pop调用?在那之后改变看法?另外,我相信当图像加载完成时,“complete”事件会从图像组件中发出。