导出的SWC不会保留自动完成功能'参数'名

时间:2011-11-30 15:38:36

标签: actionscript-3 frameworks flash-cs5 swc

我正在使用Flash CS5,我创建了一个很大的,很少变化的框架,每次我在项目中使用它时都不想重新编译。

我必须做错事,因为“自动完成”功能不会显示函数参数的名称。

例如,我有一个功能:

public class Hey {
    public function show(name:String, num:Number, data:Array):void {...}
}

我导出SWC文件,当我将其导入另一个项目时,此功能的自动完成显示:

  

show(arg0:String,arg1:Number,arg2:Array):void

因此,我得到“arg0”,“arg1”和“arg2”而不是“name”,“num”和“data”。

我已经下载了其他SWC文件,auto-complete正确获取了名称。

我在出口时做错了吗?

3 个答案:

答案 0 :(得分:4)

我从未能够使用Flash Pro IDE生成SWC,以在代码提示中提供正确的参数名称。出于某种原因,Flash IDE要么不使用相同的编译器,要么不使用与Flex SDK工具包相同的编译器选项。

您可以通过创建Flex库项目,使用Flash Builder生成与代码提示兼容的SWC。 “Flex Library”的“Flex”部分有点误导。您可以使用此项目类型构建仅支持AS3的SWC文件。

或者,如果您不想为Flash Builder花钱,您可以随时下载免费的Flex SDK并使用compc编译器为您生成SWC。它与Flash Builder用于生成SWC的工具集相同,因此您将获得相同的代码提示功能。如果您习惯使用命令行工具,语法非常简单:

compc -source-path . -include-classes MyCustomClass -output=MyLibrary.swc

希望有人可以发布更好的答案并证明我错了,但我从未见过Flash生成的SWC包含代码提示中的参数。

答案 1 :(得分:2)

我想你用debug = false编译但是应该是debug = true来保存swc中包含参数名称的所有必要数据。

优化库意味着在部署之前从库中删除调试和其他代码。对于不使用RSL的普通库,您不需要进行优化。这是因为您可能希望在开发期间对库进行调试,因此您将需要库中的调试代码。而且,当您编译应用程序的发布版本时,编译器将排除调试信息,因为它链接库中的类。

http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7ad5.html

答案 2 :(得分:1)

对我来说,最简单的方法是将代码导入Flash Develop项目,并安装一个插件来导出swc:http://sourceforge.net/projects/exportswc/

安装Flash Develop后,转到工具»安装软件并安装 AIR SDK + ASC 2.0 (Action Script Compiler 2.0) )

此处有更多信息:http://www.flashdevelop.org/community/viewtopic.php?t=2987