Flash Builder如何像Flash IDE一样将文件嵌入应用程序中?

4
我会尽力让这个问题简单易懂: 如果我从Flash IDE创建一个AIR应用程序,我可以选择将文件夹嵌入到我的包中。然后我可以使用'app:/'+文件名加载文件。一切正常。 我必须转向Flash Builder,因为我无法在IDE中测试工作程序(感谢Adobe)。我的问题是,如果我从Flash Builder进行测试/调试,当调用'app:/'+文件名时,它会出现流错误。如果我从FB的IDE中启动测试,它可以工作,但Workers却不能工作。值得一提的是,我使用这种方法的原因是我有很多图形资产,使用这种方式维护/更新比使用[Embed..]更容易,而且在IDE中可以正常工作...

我已经将我的文件夹添加到Flash Builder的源位置中,但似乎我仍然无法使用'app:/'。

如何使这个工作,以便我不改变我的代码,仍然使用'app:/'?FB是一个如此令人困惑的程序...

编辑:我再次在FB启动的IDE构建中测试了工作程序(Flash IDE图标中的测试),我可以跟踪其状态:

worker.start();
worker.addEventListener(Event.WORKER_STATE, this._handleWorkerState);

private function _handleWorkerState(__e:Event):void{
        trace(__e.currentTarget.state);
}

跟踪“new”然后是“running”。但出于某种原因,它没有从任何消息通道发送或接收任何数据,这在FB4.7中运行调试时有效,但找不到我的文件...

Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: app:/foldername..

所以基本上,我正在寻找至少解决我的一个问题的解决方案 :)
编辑: 好的。问题在于安装了错误的调试器版本(用于工作人员部分)。所以现在我可以在IDE中工作和编译了。我还没有找到为什么从FB4.7开始'app:/'不起作用的答案。所以这就是余下的问题。

如果您前往“项目”->“属性”->“Flex Build Packaging”->“Package Contents”,您的文件夹是否被列出并打勾? - CyanAngel
在“项目”->“属性”中没有“Flex构建打包”。顺便说一下,这是FB 4.7。此外,该项目被设置为Flash IDE项目。 - Eric
啊,抱歉,我正在使用4.6版本,对4.7不是很熟悉。 - CyanAngel
奇怪的是,Adobe文档其他问题似乎表明Flex Build Packaging应该在项目属性中可用... - Jeff Ward
2个回答

1

如果你有Flash IDE,一种选择是创建一个包含所有图片的库。将所有图片拖到Flash库中并导出为ActionScript。然后发布并创建SWC文件。接着在Flash Builder中使用SWC文件,它类似于显示对象的zip文件,并像这样访问它们:

var mc:MovieClip = new imageExportedForAS3_1()

1
在您的Flex项目中创建一个顶级文件夹,例如称为images,将所有图像复制到该文件夹中,然后每次需要加载图像时,只需使用源属性并使用绝对路径,例如。
<mx:Image source="@Embed(source='../images/pic.png')"

我以前从未使用过“这个应用程序(:)句子”!祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接