【问题标题】:Can't get my relative paths to work with flashDevelop and flex无法让我的相对路径与 flashDevelop 和 flex 一起使用
【发布时间】:2012-10-29 05:28:27
【问题描述】:

所以我正在使用 FlashDevelop 和 flex,但我无法让源代码正常工作。当我嵌入图像时它工作得很好,但如果我只是去 source=".​​./img/Koala.jpg" 我用于工作嵌入的相同路径它不起作用。在 flash builder 中,我所要做的就是 source="/img/Koala.jpg" ,它工作得很好。如果我输入路径“D:\flashDevelop\FlexMobileProject\src\img\Koala.jpg”,这可以正常工作。谁能解释一下我在这里缺少什么?

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    title="HomeView" creationComplete="init()">

<fx:Script>
    <![CDATA[

        [Embed(source = "../img/Koala.jpg")]
        [Bindable] public var img:Class;


        public function init():void {
            var s:String = new String();
            label.text = String(imgstage.sourceHeight);

            trace(imgstage.source);
        }

    ]]>
</fx:Script>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<!-- can't find the image even if that path is the same as the embed -->
<s:Image id="imgstage" source="../img/Koala.jpg" y="0" x="0"/>
<s:Label id="label" text="name"></s:Label>
</s:View>

【问题讨论】:

  • Philippe 的回答是正确的。还考虑到这个限制,使用 flex 是完全可以的(服务器部署,您可以参考父路径),但考虑一下 AIR。它只是直接打包AIR项目的src,绝对不能将这些图像安装在INSTALLED DIR的父目录中,因此AIR(包括移动应用程序)不可能。

标签: actionscript-3 apache-flex flex4.5 flashdevelop


【解决方案1】:

当您为图像指定“来源”时,文件将在运行时加载。但是,FlashDevelop 不会将文件从 src/ 复制到 bin/ - 您必须使用要在运行时加载的元素手动填充 bin/ 目录。运行时的路径相对于 HTML 页面进行解析。

嵌入是在编译时解析的,应该注意的是,在使用 FlashDevelop 时,路径总是相对于 class/mxml 文件而不是相对于项目根目录来解析。如果路径以“/”开头,它将相对于类路径的根目录。

PS:这些限制实际上存在于 Flex SDK 中。

【讨论】:

  • 谢谢!这正是我需要知道的。问题解决了
【解决方案2】:

如果我没记错的话,source=".​​./img/Koala.jpg" 是在运行时处理的,而 embed 指令是在编译时处理的。所以工作目录不同导致 source="" 失败。

做以下工作:

<s:Image id="imgstage" source="img/Koala.jpg" y="0" x="0"/>

假设 img 文件夹在您的 swf 文件旁边,它应该可以工作。

【讨论】:

  • 不,它仍然不起作用。似乎该文件甚至没有被移动到工作目录中,而 flashDevelop 正在被调试或像 flash builder 那样安装额外的文件。当我查看 flashdevelop 中的 bin 文件夹时,它里面只有一个 swc,但是当我查看 flash builder 中的文件夹(名为“bin-debug”的文件夹)时,它有 Main-app.xml 和 Main.swf 以及文件夹里面的照片。是否有我缺少的设置来告诉它将文件复制到 bin 中?
  • 如果您在 FlashDevelop 中右键单击该项目,您可以告诉它将 swf 文件放在特定文件夹中。
【解决方案3】:

在 FlashDevelop 中,您想保留在 SWF 之外的任何文件都必须放在 bin 文件夹中。

【讨论】:

    猜你喜欢
    • 2020-10-16
    • 2019-10-29
    • 2011-07-19
    • 1970-01-01
    • 2020-01-06
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    相关资源
    最近更新 更多