2011-08-18 39 views
1

這不僅僅是一個問題,而是一個咆哮。但我很想知道是否有人對我有一些洞察力。我正在處理的應用程序處理C#.NET後端;通信是通過我們推送AMF對象的套接字實現的。 AMF對象類定義是由服務器端團隊生成的,我只需在閃存上使用registerClassAlias將它們連接起來 - 非常標準;唯一的區別是,因爲他們來自C#背景,他們更喜歡使用UpperCammelCasing而不是lowerCamelCasing來獲取屬性名稱。如果一個屬性名稱與一個類類型匹配,爲什麼Flex編譯器會感到困惑?

今天我收到了一堆更新的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那麼它編譯得很好;我唯一的猜測是編譯器無法區分屬性名稱和類型屬性,但是真的是這樣嗎?!

+1

是的,我敢肯定它是。如果你的變量名與你的包名相同,我想它也會變得困惑,就像在public var generated:LeaderboardInfo中一樣,儘管我不能發誓。 – alecmce

+0

您是否可以不使用.NET AMF序列化程序來使其將UpperCamelCase屬性序列化爲lowerCamelCase? – RIAstar

回答

0

我認爲這是因爲您剛剛覆蓋LeaderboardInfo的「定義」是一個屬性而不是類,所以當它查找該類時,屬性定義優先,從而將其打破。

我想像你會得到相同的結果,如果你試圖做類似public var return:int = 0;

相關問題