Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在接口中使用常量作为默认参数值:IDE正常,但mxmlc失败?_Actionscript 3_Interface_Constants - Fatal编程技术网

Actionscript 3 在接口中使用常量作为默认参数值:IDE正常,但mxmlc失败?

Actionscript 3 在接口中使用常量作为默认参数值:IDE正常,但mxmlc失败?,actionscript-3,interface,constants,Actionscript 3,Interface,Constants,这段代码在IDE中似乎编译得很好,但命令行编译器(SDK 4.5 mxmlc.exe)报告“参数初始值设定项未知或不是编译时常量” 给出了一个很好的解释和一个可能的解决方法,但我希望有更简洁的东西(比如命令行指令) 根据Seniour的说法,这都是关于编译顺序的。没有明确的方法来设置这个顺序 可以使用编译器选项定义内联常量以避免此问题 另一种方法是创建一个包含常量的库。库包含在用户类之前。 要创建库,请使用: 编译应用程序时,请包括该库: mxmlc -include-libraries lib

这段代码在IDE中似乎编译得很好,但命令行编译器(SDK 4.5 mxmlc.exe)报告“参数初始值设定项未知或不是编译时常量”

给出了一个很好的解释和一个可能的解决方法,但我希望有更简洁的东西(比如命令行指令)


根据Seniour的说法,这都是关于编译顺序的。没有明确的方法来设置这个顺序

可以使用编译器选项定义内联常量以避免此问题

另一种方法是创建一个包含常量的库。库包含在用户类之前。 要创建库,请使用:

编译应用程序时,请包括该库:

mxmlc -include-libraries lib\Constants.swf -- src\Main.as
只是不要忘记在常量更改时重新编译库,或者使用一个构建脚本来处理这个问题


关于示例代码的简短注释:
接口不需要使用该常量,任何值都可以,并且对实现类具有相同的效果

实现此类函数声明的方法必须具有一个默认参数值,该参数值是与接口定义中指定的值具有相同数据类型的成员,但实际值不必匹配


也许你可以试试配置常量?我唯一能想到的是创建自己的批处理类型脚本,以便在编译器获取源代码之前对其进行预处理,但这可能不是最好的主意。不过,如果你把所有的bug都清除了,它还是可以工作的:)
compc -output lib\Constants.swf -source-path src -include-classes Constants
mxmlc -include-libraries lib\Constants.swf -- src\Main.as