【问题标题】:Flex 4 modules - cannot include classes unless in same folder as the module? What am I missing?Flex 4 模块 - 除非与模块位于同一文件夹中,否则不能包含类?我错过了什么?
【发布时间】:2010-09-29 12:41:17
【问题描述】:

我正在玩一个 Flex 4 / Air 2 项目,它在运行时加载模块。我可以在我的模块中包含内部 MX 类并且一切正常(例如:import mx.controls.Alert)。

我也可以包含我自己的类 - 但是,仅当该类与模块位于同一文件夹中时。

例如:

<?xml version="1.0"?> 
<mx:Module> 
    <mx:Script> 
        <![CDATA[ 
        import mx.controls.Alert; // works
        //import MyTestClass;       // works if MyTestClass.as is in same folder as module
        //import Classes.MyTestClass; // throws compiler error


    ]]> 
    </mx:Script> 
</mx:Module> 

文件夹结构:

.
|-- Classes
    |-- MyTestClass.as
|-- Modules
    |-- MyModule.mxml
`-- application.mxml

所以当我尝试编译我的模块时,在导入“Classes.MyTestClass”时,编译器会抛出以下错误:

“错误:定义类:MyClass 找不到”

我知道 Class 的路径是正确的,如果我将项目编译为应用程序而不是模块,则一切正常。

此外,如果我在父应用程序中导入“Classes.MyTestClass”,一切都很好。所以我想我错过了将这些类包含在模块中的编译器选项,但不知道是什么! 这就是我编译模块的方式:

mxmlc -静态链接运行时共享库​​=真 -load-externs=../obj/exclude.xml -isolate-styles=false ../src/Modules/MyModule.mxml

“../obj/exclude.xml”是来自“父”应用程序的链接报告。

任何人都可以帮助我了解我缺少什么吗?

【问题讨论】:

    标签: apache-flex actionscript-3 air flex4


    【解决方案1】:

    您需要将您的类文件夹作为源路径包含在内,以便编译器可以找到该类。

    将此命令附加到 mxmlc:

    -source-path /src/Classes
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-20
      • 2021-10-23
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      相关资源
      最近更新 更多