我正在浏览其他人写的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)。
答案 0 :(得分:1)
好的 - 在Flex邮件列表的帮助下破解了它。
我不得不将我的资产文件夹复制到我的bin文件夹中。这样路径就相对于.swf了。 (实际上,我已经为以前的AS3项目做了这个 - 但我认为AIR的打包资产文件夹会覆盖这个。)
无论如何 - 问题解决了。
答案 1 :(得分:0)
根据您的代码,您提供的图片路径参考不正确,而不是myImage.source = '/assets/myimage.png';
尝试myImage.source = 'assets/myimage.png';
希望它适合你。