Actionscript 3 如果属性名与类类型匹配,为什么Flex编译器会感到困惑?

Actionscript 3 如果属性名与类类型匹配,为什么Flex编译器会感到困惑?,actionscript-3,mxmlc,Actionscript 3,Mxmlc,这与其说是一个问题,不如说是一个咆哮;但我很想知道是否有人对我有所了解。我正在开发的应用程序处理的是一个C#.NET后端;通信是通过一个套接字实现的,我们在这个套接字上推送AMF对象。AMF对象类定义是由服务器端团队生成的,我只需在flash端使用registerClassAlias将它们链接起来即可-相当标准;唯一的区别是,由于他们来自C#背景,他们更喜欢使用大写字母而不是小写字母作为属性名称 今天我得到了一堆更新的AMF对象,我把它们放到了项目中;但我注意到,更新后,我的项目将不再编译-下面

这与其说是一个问题,不如说是一个咆哮;但我很想知道是否有人对我有所了解。我正在开发的应用程序处理的是一个C#.NET后端;通信是通过一个套接字实现的,我们在这个套接字上推送AMF对象。AMF对象类定义是由服务器端团队生成的,我只需在flash端使用
registerClassAlias
将它们链接起来即可-相当标准;唯一的区别是,由于他们来自C#背景,他们更喜欢使用大写字母而不是小写字母作为属性名称

今天我得到了一堆更新的AMF对象,我把它们放到了项目中;但我注意到,更新后,我的项目将不再编译-下面是有问题的类定义:

LeadboardInfo.as生成类

GameResult.as生成类

MXMLC错误

[mxmlc]…/GameResult.as(27):列:32错误:找不到类型或类型不是编译时常量:排行榜信息。 [mxmlc]公共var排行榜信息:排行榜信息; [mxmlc]^
如果我将属性名称从
leadboarderinfo
更改为
SomethingElse
,则它可以正常编译;我唯一的猜测是编译器无法区分属性名和类型属性,但真的是这样吗

我认为这是因为您刚刚将
排行榜信息
的“定义”改写为一个属性而不是一个类,所以当它查找类时,属性定义优先,这打破了它


我想,如果您尝试执行类似于
publicvarreturn:int=0

是的,我很确定是这样。如果您的变量名与包名相同(我想是在public var generated:leadboardinfo中),这也会让人感到困惑,尽管我不能发誓。您是否可以修改.NET AMF序列化程序,使其将大写属性序列化为小写属性?
package com.generated {
    public class LeaderboardInfo {
        public var IsTied : Boolean;
    }
}
package com.generated {
    public class GameResult {
        public var LeaderboardInfo : LeaderboardInfo;
    }
}
[mxmlc] .../GameResult.as(27): col: 32 Error: Type was not found or was not a compile-time constant: LeaderboardInfo. [mxmlc] public var LeaderboardInfo : LeaderboardInfo; [mxmlc] ^