Apache flex 视图转换疑难解答
我在应用程序的每个视图中从异步数据库加载图像 我正在使用Pop/PushView中的视图转换在视图之间进行更改 问题:图像在ViewTransition完成后加载,而不是之前加载 解决方案 以及守则: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
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”事件会从图像组件中发出。