使用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编译时报错,只有把这方法先注释掉。

 


另,在导出另一个项目时,遇到错误:
Error: Unable to transcode assets/images/i_layer.png.
[Embed(source="assets/images/widget/i_layer.png")]

之前的项目也使用了Embed嵌入png图片。对比一下,发现,之前的项目绑定的是public static var,没报错;这个项目是public var。 目前没想到解决办法。

你可能感兴趣的:(Flex)