想要对一个组件项目导出asdoc。组件的sdk是3.6,但使用环境的是eclipse的Flex SDK 4.0 插件版本。
那么,进入3.6.0\bin, 输入
asdoc -source-path E:\lib\myComp\src -doc-classes comp.MyComp
报错:
Error: '' is not a directory
需要从sdk3.4中复制asdoc文件夹到sdk3.6中。见附件。
如果从sdk4.5中复制的话,会报错:
Error: Could not create toplevel.xml: Cannot run program "E:\sdks\3.6.0\framewor
ks\..\asdoc\templates\asDocHelper.exe" (in directory "E:\sdks\3.6.0\frameworks\.
.\asdoc\templates"): CreateProcess error=2, ?????????
因为此项目中使用了第三方swc,还要添加-library-path E:\lib\myComp\libs\some.swc
否则会找不到swc中的类。
于是,输入以下命令:
asdoc -source-path E:\lib\ myComp \src -doc-classes comp.MyComp -library-path E:\lib\ myComp\libs\some.swc
报错:
E:\lib\myComp\src\comp\MyComp.as(67): col: 33 E
rror: 找不到基类 VBox 的定义。
public class MyComp extends VBox
^
E:\lib\MyComp\src\comp\MyComp .as(478): col: 31
Error: 标记为 override 的方法必须覆盖另一方法。
override protected function createChildren():void
^
看来使用的编译器还是4.x系列的。
最终成功的命令是:
asdoc -source-path E:\lib\MyComp\src -doc-classes comp.MyComp -library-path E:\lib\MyComp\libs\some.swc E:\sdks\3.6.0\frameworks\libs
项目中用到了FileReference的save()方法来保存为本地文件,但asdoc编译时报错,只有把这方法先注释掉。