Почему Flex Compiler запутывается, если имя свойства соответствует типу класса? - PullRequest
1 голос
/ 18 августа 2011

Это скорее напыщенная речь, чем вопрос; но мне любопытно узнать, есть ли у кого-нибудь понимание для меня. Приложение, над которым я работаю, работает с C # .NET; связь достигается через сокет, через который мы помещаем объекты AMF. Определения классов объектов AMF генерируются командой на стороне сервера, и мне просто нужно использовать registerClassAlias на стороне флэш-памяти, чтобы связать их - довольно стандартно; единственное отличие состоит в том, что, поскольку они исходят из фона C #, они предпочитают использовать UpperCammelCasing вместо lowerCamelCasing для имен свойств.

Сегодня я получил несколько обновленных объектов AMF, которые я поместил в проект; но я заметил, что после обновления мой проект больше не будет компилироваться - вот определения классов:

LeaderboardInfo.as Генерируемый класс

package com.generated {
    public class LeaderboardInfo {
        public var IsTied : Boolean;
    }
}

Созданный класс GameResult.as

package com.generated {
    public class GameResult {
        public var LeaderboardInfo : LeaderboardInfo;
    }
}

Ошибка MXMLC

[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]                                      ^

Если я изменю имя свойства с LeaderboardInfo на SomethingElse, тогда оно будет скомпилировано нормально; Я могу предположить, что компилятор не может различить имя свойства и атрибут type, но так ли это на самом деле?!

1 Ответ

0 голосов
/ 18 августа 2011

Я думаю, это потому, что вы просто переписали «определение» LeaderboardInfo как свойство, а не класс, поэтому при поиске класса определение свойства имеет приоритет, что нарушает его.

Я полагаю, что вы получите тот же результат, если попытаетесь сделать что-то вроде public var return:int = 0;

...