运行时的 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 的打包资产文件夹将涵盖此内容。)
无论如何 - 问题已解决。
我正在浏览其他人编写的 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 的打包资产文件夹将涵盖此内容。)
无论如何 - 问题已解决。