2011-06-02 80 views
3

我已經繼承了Adobe AIR應用程序,並試圖通過Flash Builder 4.5對其進行調試。在Flash Builder中,當我在看的MXML文件中的一個,我看到警告每次使用[Bindable]標籤:Flash Builder:「訪問未定義屬性可綁定」

[Bindable] 
internal var selectedPreviousID:String=null; 

[Bindable] 
internal var recent:mx.collections.ArrayCollection; 

的警告是:

可綁定未定義的屬性訪問

有什麼我認爲是合適的庫導入:

import mx.binding.utils。*;

根據this blog post中的建議,每條警告前面的行上沒有缺失的分號。

該項目配置爲使用Flex SDK 3.6。組件佈局時出錯:

此外,該文件將不會在設計負荷,用這樣的警告:

設計模式。選擇設計>刷新刷新設計模式。

我錯過了什麼?在運行時,我看到一個空白窗口 - 我認爲這是綁定未被觸發的結果。這個標籤在Flex SDK 3.6中不可用嗎?

+0

你可以張貼的綁定標籤究竟是如何使用的例子嗎? (你可以嘗試[Bindable()],這可能會解決問題)。 – 2011-06-02 15:41:53

+0

發佈該類的代碼 – 2011-06-02 16:20:34

+0

首先,不要使用設計器,它是廢話IMO。純代碼更具可視性。至於關於Bindable的警告,你不應該有問題,因爲Bindable是Flex的一個組成部分,除非錯誤的東西和解析器認爲你引用了別的東西。 – 2011-06-02 18:10:34

回答

3

通過一個接一個地從代碼去除元件,我發現的警告某種程度上似乎已經由<mx:WebService>元素聲明較早引起:

<mx:WebServiceid="service" 
    wsdl="https://blah.com/blah?WSDL" 
    operations='{{"Op1":this.method1()}}'/> 
</mx:WebService> 

具體地,如果我刪除內聯「操作」屬性 - 那麼針對Bindable的警告消失。必須觸發解析器的一些問題。

進一步測試顯示使用內聯屬性語法任何屬性,例如:

properties='{{"outerDocument":this}}' 

觸發此解析器問題。此代碼由反編譯器生成,因此可能無效。

沒有用於指定的操作爲XML節點,而不是一個屬性的替代語法:

<mx:WebServiceid="service" 
    wsdl="https://blah.com/blah?WSDL"/> 
    <mx:operation name="Op1" result="this.method1(event)"> 
    <mx:request> 
     <token>{credentials.token}</token> 
     </mx:request> 
    </mx:operation> 
</mx:WebService>