2010-04-23 83 views
0

我正在寫一個Flex應用程序從httpservice接收xml。這是有效的,因爲我可以用這些信息填充數據網格。 xml發送圖像路徑名。組合框發送一個新的HttpService調用onChange。這會重新填充datagrid並將新圖像放入flex正在訪問的文件夾中。圖片將不會動態刷新

我想動態更改圖像而不更改圖像的路徑名。

<mx:Canvas id="borderCanvas"><mx:Canvas id="dropCanvas"> 
    <mx:Tile id="adTile"><mx:Image></mx:Image> 
    </mx:Tile></mx:Canvas></mx:Canvas> 

這是我的組件。 我使用此代碼分配我的圖片來源:

var i:Number = 0; 
     while (i <= dg_conads.rowCount){ 
     var img:Image = new Image(); 
     img.source = null; 
     img.source = imageSource+i+".jpg"; 
     adTile.addChild(img); 
     i++; } 

我最大的問題是圖像不清爽。儘管我阻止了HTML包裝器和ASP.Net網站的緩存,但我仍然可以看到相同的圖像。圖像自動加載到文件夾中並刷新文件夾,但無法在應用程序中刷新圖像。 我試過removeAllChildren();刪除(adTile.getChildAt(0));並沒有工作。

回答

0

我會嘗試使用:

img.load(imageSource + i + ".jpg"); 

如果還是不行,請嘗試在年底即附加一個隨機數:

img.source = imageSource + i + ".jpg?" + Math.random(); 
+0

這些都不會動態刷新圖像。 – Bridget 2010-04-26 14:14:54

+0

哦,你如何通知flex應用程序圖像已經改變? Flex不會監視圖像以查看它是否已更改。 – quoo 2010-04-26 14:42:07

+0

我想我沒有通知它已經改變了,這就是我需要做的刷新,我只是想刪除所有引用並刪除圖像,然後創建一個新的。你有辦法通知flex嗎? – Bridget 2010-04-26 15:57:45

0

你試過加上id = 「IMG」直接進入mx:Image標籤並刪除adTile.addChild(img); 在腳本中?

+0

我確實嘗試過。它沒有工作 – Bridget 2010-04-26 14:14:34

+0

使用Tile標籤的目的是什麼?你想顯示一個圖像或一批圖像? – michael 2010-04-26 15:00:47

+0

一批圖像。 – Bridget 2010-04-26 15:55:55