运行时的 Flex mx 图像源路径

Flex mx Image source path at runtime

我正在浏览其他人编写的 Flex AIR 桌面项目。原作者使用了几个mx.controls.Image组件。像这样分配的运行时图像路径:

image.source = "/assets/book.png";

它不起作用 - 我只是看到损坏的图像图标。

我从来没有在自己的代码中使用过上述方法。就个人而言,我一直使用编译时嵌入图像或 URLLoader/Loader 运行时图像。

所以,我想了解如何使这种图像路径方法发挥作用。

我写了一个简单的测试程序。这是我的 .mxml -

<?xml version="1.0" encoding="utf-8"?>
 <pf:LearningAS xmlns:fx="http://ns.adobe.com/mxml/2009"
      xmlns:mx="library://ns.adobe.com/flex/mx"
      xmlns:pf="com.powerflasher.*">
      <mx:Image id="myImage"/>
 </pf:LearningAS>

这是我连接的 .as

public class LearningAS extends WindowedApplication {

    public var myImage:Image;

    public function LearningAS() {
        super();
        addEventListener(FlexEvent.CREATION_COMPLETE, init);
    }

    protected function init(event:FlexEvent):void {
        myImage.source = '/assets/myimage.png';
    }
}

我还将 src/assets 文件夹添加到 AIR 包内容中。我在我的编译器指令中添加了 -use-network=false。 (我正在使用 FDT 和 Flex 4.6)。

根据您的代码,您提供的图片路径引用不正确,而不是 myImage.source = '/assets/myimage.png'; 试试 myImage.source = 'assets/myimage.png';

希望对你有用。

好的 - 在 Flex 邮件列表的帮助下破解它。

我必须将资产文件夹复制到我的 bin 文件夹中。这样路径是相对于 .swf 的。 (实际上,我已经为以前的 AS3 项目完成了此操作 - 但我假设 AIR 的打包资产文件夹将涵盖此内容。)

无论如何 - 问题已解决。