所以我使用的是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>
答案 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中。