2011-07-27 39 views
2

我有一個Flex應用程序依賴於那略帶抽象Flex的ResourceManager的一類。我使用的(純粹AS3)類擴展了EventDispatcher,並處理運行時加載本地化信息以及返回已翻譯的令牌。 我無法使用基本resourceManager,因爲如果找不到標記,我不希望它返回null。的Flex數據綁定功能(非吸氣)

/endexposition當我試圖讓我的GetString函數可綁定

我的問題就來了。

[Bindable(event="bundleLoaded")] 
public function getString... 

「bundleLoaded」事件被適當地分派。此功能在我參與開發的90%的應用程序中正常工作。然而,對於一個應用程序,我得到以下錯誤混淆:

1084: Syntax error: expecting rightbrace before s. Resource=(ProjectName) Path=(null) Location=line 301

應用程序編譯和作品(減去綁定,很明顯)之前,我添加[可綁定...]行,但之後我再補充一點線它拒絕正確編譯。任何應用程序或支持類的第301行都沒有什麼特別有趣的地方。

任何提示?任何人都有類似的經歷?

+0

+1對於一個wekk書面問題。這對我來說似乎很奇怪。 Bindable線是拋出錯誤的線嗎?是應用程序拋出錯誤使用相同的SDK作爲不拋出錯誤的應用程序?有編譯器設置差異嗎?我在抓秸稈,但如果您切換到單引號而不是雙引號? – JeffryHouser

+0

301行上的代碼是什麼?如果第301行的代碼是[Bindable],那麼你可能在它之前的代碼行上有一些問題。嘗試將這些行移動到類的頂部,看看你得到了什麼錯誤。我敢打賭,你缺少一個「}」或「]」某處功能前301個 –

+0

@Flextras,是的,相同的SDK(3.5)。不應該有任何編譯器設置的差異,但我會仔細檢查。其他應用程序在同一個項目中(在Flash Builder 4.0中開發),所以它不太可能(不可能?)。將嘗試單引號,我已經抓了幾個小時的吸管:) –

回答

0

好了,通過生成的代碼搜索後,我發現了一個問題(其中wiiiiill是錯誤上報的Flex SDK)。

我的代碼綁定文本屬性的資源(用於本地化)。

即屬性中使用的三元操作。一旦我創建了這個綁定,生成的代碼剝去了「:」和「?」從我的三元操作,並導致一個錯誤。

myResourceManager.getString('bundle','token',[numDays, numDays != 1 ? 's' : '']) 

編譯器轉向到這一點......

new mx.binding.FunctionReturnWatcher("getString", target, 
     function():Array 
     { return [ "bundle", "token", [target.numDays, target.numDays != 1"s"""] ]; } 

留下我一個不錯的,曖昧的編譯器錯誤。感謝您的期待,夥計們!這個是固定的。

編輯:如果有人感興趣:https://bugs.adobe.com/jira/browse/SDK-30937