0

在最简单的 Flex 项目中,创建一个 MXML Flex 模块,然后使用 ModuleManager 加载它。没问题。创建一个扩展模块的 ActionScript 类,然后配置您的项目以将其编译为模块。而是加载这个新模块。该项目可以编译,但在运行时崩溃并出现以下错误:

“错误:找不到语言环境‘en_US’的已编译资源包‘容器’。”

我相信编译器无法将所需的类定义编译到仅 ActionScript 的模块中,而 MXML 模块却成功了。我可以看到我的骨架 MXML 模块比我的 ActionScript 模块稍大(66KB 对 45KB)。

我该如何解决这个问题(如果这确实是问题)?

4

3 回答 3

0

我在编译库 swc 时遇到了同样的问题。我能够通过将以下部分添加到项目 projectName-config.xml 来修复它

    <include-libraries append="true">
        <library>${flexlib}/locale/{locale}/framework_rb.swc</library>
    </include-libraries>

这会强制编译器包含指定语言环境的框架资源包。

于 2011-04-27T22:18:16.677 回答
0

对我来说,问题是找出哪个项目——在我的例子中是一个库——以及这个库中的哪个类导致了这种行为(我需要意识到我的最后一次更改——没有来自 flashbuilder 的信息)。然后将以下属性应用于类:

[ResourceBundle("containers")]
public class IpChecker {
...

那成功了。

于 2012-03-05T17:44:08.880 回答
0

在这种情况下,一个好的方法是对两个项目使用 -keep-generated-actionscript,一个使用 mxml 方法,一个使用 actionscript 方法。然后,您可以比较代码以查看一个项目中可能缺少的内容,但包含在另一个项目中。

您是否尝试向您的 ActionScript 项目类添加对 [ResourceBundle("containers")] 的显式引用?由于许多正当的原因,mxmlc 在行为上与 compc 编译器不同。

于 2010-09-22T08:13:19.080 回答