Flex mx运行时的图像源路径

时间:2015-09-28 06:04:15

标签: actionscript-3 flex air

我正在浏览其他人写的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)。

2 个答案:

答案 0 :(得分:1)

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

我不得不将我的资产文件夹复制到我的bin文件夹中。这样路径就相对于.swf了。 (实际上,我已经为以前的AS3项目做了这个 - 但我认为AIR的打包资产文件夹会覆盖这个。)

无论如何 - 问题解决了。

答案 1 :(得分:0)

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

希望它适合你。