使用flex sdk3.6的asdoc遇到的问题及解决方法
想要对一个组件项目导出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编译时报错,只有把这方法先注释掉。
?