1

我们一直在尝试针对 Flex 3 库项目编译 ASDocs。我们的问题是 ASDocs 拒绝识别在库中创建和使用的任何自定义 mxml 组件。

例如,如果我们的库中有一个自定义的 mxml AdvancedButton 控件,并且我们尝试在库中的另一个 mxml 类中使用它,ASDocs 编译器会在父类文件上出错,并显示“错误:找不到类型或未找到类型”一个编译时常量:AdvancedButton”。

如果我们尝试扩展我们的自定义组件,也会发生错误。因此,如果我们的库包含扩展 Button 的 AdvancedButton 和扩展 AdvancedButton 的 ExtraAdvancedButton,则 ASDocs 将“无法找到指定的基类 'AdvancedButton for component class 'ExtraAdvancedButton'”。

另一方面,如果 AdvancedButton 是从外部库中引用的,我们不会得到错误。

如果文件是 .as 而不是 .mxml,这似乎不是问题。然而,在我们的例子中,我们嵌套了基于 degrafa 的组件。

想法将不胜感激。

4

3 回答 3

2

我花了好几个小时试图为我的 Flex 项目生成 ASDocs,并且不断收到与无法找到基类 x/y/z 相关的错误。最后我发现这是因为我没有告诉 ASDoc Flex SWC 文件的位置:

(For me) C:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.4.0\frameworks\libs

将此路径包含在附加-library-path参数中,您应该会发现它停止了有关找不到基类的任何错误。

这听起来类似于上面描述的原始问题,即缺少指向这些自定义组件所在位置的链接。确保包含包含这些自定义组件 .as 文件的基本目录

于 2010-06-08T14:14:17.783 回答
2

我最近遇到了同样的问题。对我来说,诀窍是将 -source-path "src" 添加到 asdoc 编译器参数中。

这是对我有用的 asdoc 命令:

c:\work\prg\Flex>"c:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.3.0\bin\asdoc.exe" -doc-sources "src" -main-title "PRG documentation" -output "c:\work\prg\Flex\docs" -source-path "c:\work\XmlMappingAS3\src" -source-path "assets\css" -source-path "c:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.3.0\frameworks\projects\framework\src" -source-path "c:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.3.0\frameworks\projects\rpc\src" -external-library-path "c:\work\commonLibraries\Flex\as3commons-reflect-1.0.0.swc" -external-library-path "c:\work\commonLibraries\Flex\Cairngorm.swc" -external-library-path "c:\work\commonLibraries\Flex\spring-actionscript.swc" -external-library-path "c:\work\commonLibraries\Flex\xpath-as3-1.0.0.swc" -external-library-path "c:\work\commonLibraries\Flex\as3corelib.swc" -external-library-path "c:\work\commonLibraries\Flex\as3reflect.swc" -source-path "src"

此外,使用 FlashDevelop ActionScript 文档生成器(实际上就是我使用的)是一个很大的帮助。如果您在 Windows 环境中将 FlashDevelop 安装到“c:\Program Files\FlashDevelop”,则文档生成器位于“c:\Program Files\FlashDevelop\Tools\asdocgen\ASDocGen.exe”。

祝你好运!

于 2009-09-28T15:51:24.023 回答
0

您是否使用 asdoc 的-library-path参数?
但是等等,你说如果它是从外部库引用的,你就不会出错——所以你已经在使用库路径了,对吧?

Flex 3 ASDoc 根本不记录 mxml。所以你可能会得到 flex 4 sdk 并尝试使用它附带的 asdoc。

于 2009-09-01T06:51:33.317 回答