我们一直在尝试针对Flex 3库项目编译ASDoc。我们的问题是ASDocs拒绝识别在库中创建和使用的任何自定义mxml组件。
例如,如果我们的库中有一个自定义的mxml AdvancedButton控件,并且我们尝试在库中的另一个mxml类中使用它,则ASDocs编译器会在父类文件中出错,并显示“Error:Type not found”或者不是编译时常量:AdvancedButton“。
如果我们尝试扩展自定义组件,也会发生错误。因此,如果我们的库包含扩展Button的AdvancedButton和扩展AdvancedButton的ExtraAdvancedButton,则ASDocs将“无法找到组件类'ExtraAdvancedButton'的指定基类'AdvancedButton”。
另一方面,如果从外部库引用AdvancedButton,我们不会收到错误。
如果文件是.as而不是.mxml,这似乎不是问题。但是,在我们的例子中,我们嵌套了基于degrafa的组件。
非常感谢您的想法。
答案 0 :(得分: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”。
祝你好运!答案 1 :(得分: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文件
答案 2 :(得分:0)
您使用的是asdoc的-library-path参数吗? 但是等等,你说如果从外部库中引用它你就不会出错 - 所以你已经使用了库路径了,对吧?
Flex 3 ASDoc根本没有记录mxml。所以可能是你shud得到flex 4 sdk并尝试使用随附的asdoc。