2010-04-23 35 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