图像不使用nativePath在flex移动应用程序中显示

时间:2012-06-27 08:14:54

标签: android actionscript-3 flex air flex4.5

我正在使用Windows上的4.1 SDK在Flash Builder 4中创建一个Android应用程序。该应用程序首先从Internet下载一些图像并将其保存在desktopDirectory中。现在我想在我的flex移动应用程序中显示下载的图像。

问题:

图像正在从互联网上成功下载并成功保存在desktopDirectory中。

现在,当我尝试使用nativePath显示图像时,它不会显示。显示带有问号的小蓝色图标而不是图像。我使用的代码如下:

displayContainer.removeAllElements();
var image:spark.components.Image = new spark.components.Image();
var imageFile:File = File.desktopDirectory.resolvePath(desktopFilePath);
if(imageFile.exists)
{
    var imagePath:String = File.desktopDirectory.resolvePath(desktopFilePath).nativePath;

    image.source = imagePath;
    trace("Image Path: " + imagePath);
    displayContainer.addElementAt(image,1);
}

当我追踪图像文件是否存在时,它会显示该文件存在。但该文件未显示在应用程序中。

但是,当我在代码中硬编码图像路径时,会显示图像,如下所示:

<s:Image id="a1" source="data/02.jpg" />

因此图像存在,但路径未以编程方式解析。

我做错了什么?请指导。

我在Android平板电脑上测试我的应用程序。

1 个答案:

答案 0 :(得分:3)

我没有使用文件nativePath,而是使用了文件URL,我解决了我的问题。请参阅下面的代码:

displayContainer.removeAllElements();
var image:spark.components.Image = new spark.components.Image();
var imageFile:File = File.desktopDirectory.resolvePath(desktopFilePath);
if(imageFile.exists)
{
    var imagePath:String = File.desktopDirectory.resolvePath(desktopFilePath).url;

    image.source = imagePath;
    trace("Image Path: " + imagePath);
    displayContainer.addElementAt(image,1);
}