2011-01-30 51 views
1

我試圖在Air應用程序中實現CSVLib,並且得到一個對我來說完全不合邏輯的錯誤。如何在FlashBuilder中使用外部動作類(我以爲我知道)

「1120:訪問未定義屬性csv」。 和 「1120:訪問未定義屬性completeHandler」。

我能想到的唯一的事情是它沒有正確導入csv類,或者類本身被破壞了?我知道我的導入路徑是正確的,因爲我基於自動提示直接輸入它。以下代碼直接從csv lib網站上的how-to wiki複製。

還是有什麼特別的你需要做的,以獲得外部動作類在flashbuilder中工作?

<fx:Script> 
     <![CDATA[ 
      import com.shortybmc.*; 
      import com.shortybmc.data.parser.CSV; 

      var csv:CSV = new CSV(); 
      csv.addEventListener (Event.COMPLETE, completeHandler); 
      csv.load (new URLRequest('example-2.csv')); 
      function completeHandler (event: Event) 
      { 
       trace (csv.data.join('\r')); 
       // do something ... 
      } 
     ]]> 
    </fx:Script> 

回答

1

在這種情況下,問題在別的地方。 fx:Script標記位於MXML文件中,該文件表示類定義。

您的錯誤發生,因爲您有類定義(即方法之外)的代碼。例如,你可以代替寫:

<fx:Script> 
    <![CDATA[ 
     import com.shortybmc.*; 
     import com.shortybmc.data.parser.CSV; 

     private var csv:CSV; 
     private function init():void 
     { 
      csv = new CSV(); 
      csv.addEventListener (Event.COMPLETE, completeHandler); 
      csv.load (new URLRequest('example-2.csv')); 
     } 

     private function completeHandler (event: Event):void 
     { 
      trace (csv.data.join('\r')); 
      // do something ... 
     } 
    ]]> 
</fx:Script> 

然後,你需要確保該init方法實際上是調用;您可以在MXML對象的完整處理程序中執行此操作。

+0

啊..我覺得自從進口導入這種情況下,腳本塊就像任何普通代碼一樣播放。但是你說的話是有道理的,而且是有效的!謝謝。 – Damon 2011-01-30 20:47:13

相關問題