FLEX:Public 静态常量未导入,未定义
FLEX: Public Static Constant not imported, undefined
我正在尝试更新由一个主文件和一个导入的 AS3 class 组成的小型 Flex AS3 "project"。不幸的是,在编译期间我收到错误 1120:Access of undefined 属性 DEBUG. 并且编译失败。我使用了来自 Flex SDK 4.6 和 Flash Builder 4.5 的 mxmlc 并遇到了同样的失败。
Flex 不是我的强项所以我希望有人能指出错误。据我了解,这个源代码在 2011 年使用 mxmlc 编译得很好。
导入文件中的相关代码:
package {
public class krpano_as3_interface {
public static var instance:krpano_as3_interface = null;
.
.
static public const STARTDEBUGMODE : int = 0xFF;
static public const DEBUG : int = 0;
来自主 AS3 文件:
package {
.
import krpano_as3_interface;
public class soundinterface extends Sprite {
static public var krpano : krpano_as3_interface = null;
.
public function soundinterface() {
if (stage == null){
}else{
txt.htmlText = "krpano " + DEBUG::version + "\n\n" +
"<b>soundinterface plugin</b>" +
"\n\n(build " + DEBUG::builddate + ")";
}
}
如果我重命名或移动导入的文件,编译器会抱怨它丢失了。应该导入定义了常量 DEBUG 的 class,为什么它不起作用?
The class where the constant DEBUG is defined should be being imported so why isn't it working?
因为他们没有任何关系
DEBUG::version
和
static public const DEBUG : int = 0;
您的代码中有两个不相关的部分。
语法中有两个提示:
- :: name qualifier 运算符位于命名空间之后,因此无论
DEBUG
是什么,它都是一个命名空间,而 public static const 不是(它是一个 int
)
- A 属性
version
被访问。 public static const 不
有这么一个属性.
您正在查看的是 conditional compilation,它(除其他外)允许您指定值并将它们传递给编译器以执行编译过程。
You can also pass Strings and Numbers to the application and use them as inline constants
在您的情况下,您想在编译器参数中定义一个版本常量。像这样:
-define+=DEBUG::version,"5"
这可能是因为版本号由某些构建脚本(make、ant 等)维护,因此将此信息传递给编译器。
我强烈建议您与之前从事此项目的开发人员联系,以了解此项目的构建过程应该如何工作。
我正在尝试更新由一个主文件和一个导入的 AS3 class 组成的小型 Flex AS3 "project"。不幸的是,在编译期间我收到错误 1120:Access of undefined 属性 DEBUG. 并且编译失败。我使用了来自 Flex SDK 4.6 和 Flash Builder 4.5 的 mxmlc 并遇到了同样的失败。
Flex 不是我的强项所以我希望有人能指出错误。据我了解,这个源代码在 2011 年使用 mxmlc 编译得很好。
导入文件中的相关代码:
package {
public class krpano_as3_interface {
public static var instance:krpano_as3_interface = null;
.
.
static public const STARTDEBUGMODE : int = 0xFF;
static public const DEBUG : int = 0;
来自主 AS3 文件:
package {
.
import krpano_as3_interface;
public class soundinterface extends Sprite {
static public var krpano : krpano_as3_interface = null;
.
public function soundinterface() {
if (stage == null){
}else{
txt.htmlText = "krpano " + DEBUG::version + "\n\n" +
"<b>soundinterface plugin</b>" +
"\n\n(build " + DEBUG::builddate + ")";
}
}
如果我重命名或移动导入的文件,编译器会抱怨它丢失了。应该导入定义了常量 DEBUG 的 class,为什么它不起作用?
The class where the constant DEBUG is defined should be being imported so why isn't it working?
因为他们没有任何关系
DEBUG::version
和
static public const DEBUG : int = 0;
您的代码中有两个不相关的部分。
语法中有两个提示:
- :: name qualifier 运算符位于命名空间之后,因此无论
DEBUG
是什么,它都是一个命名空间,而 public static const 不是(它是一个int
) - A 属性
version
被访问。 public static const 不 有这么一个属性.
您正在查看的是 conditional compilation,它(除其他外)允许您指定值并将它们传递给编译器以执行编译过程。
You can also pass Strings and Numbers to the application and use them as inline constants
在您的情况下,您想在编译器参数中定义一个版本常量。像这样:
-define+=DEBUG::version,"5"
这可能是因为版本号由某些构建脚本(make、ant 等)维护,因此将此信息传递给编译器。
我强烈建议您与之前从事此项目的开发人员联系,以了解此项目的构建过程应该如何工作。