无法让我的相对路径与flashDevelop和flex一起工作

时间:2012-11-08 22:19:49

标签: actionscript-3 flex flex4.5 flashdevelop

所以我使用的是FlashDevelop和flex,但我无法让源正常工作。什么时候我嵌入一个图像它工作得很好,但如果我只是去source =“../ img / Koala.jpg”我用于工作嵌入的相同路径它不起作用。在Flash构建器中我所要做的就是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>

3 个答案:

答案 0 :(得分:0)

如果我没记错的话,在运行时处理source =“../ img / Koala.jpg”,而在编译时处理embed指令。因此工作目录不同会导致source =“”失败。

以下是否有效:

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

假设img文件夹位于你的swf文件旁边,它应该可以工作。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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