2011-09-01 57 views
1

我從我的應用程序的每個視圖中的異步數據庫加載圖像。查看轉換故障排除

我在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; 
} 
} 

回答

0

只能推後視圖你從DB獲得的形象呢?

+0

這是顯而易見的問題,對吧?所以我嘗試了幾種不同的方法,但我也有同樣的運氣。我可以將哪種事件監聽器放在圖像源上進行更改? mxml具有更改屬性以及其他一些有用的屬性,但pushViews正在ActionScript中調用。我正在嘗試回收相同的代碼以用於推送和彈出呼叫。 – SQLiteNoob

+0

好吧,你有'結果'功能嗎?之後改變視圖?另外,我相信'complete'事件是在圖像完成加載時從Image組件分派的。 –