2011-01-30 8 views
1

AirアプリケーションでCSVLibを実装しようとしていて、まったく論理的でないようなエラーが表示されています。FlashBuilderで外部ActionScriptスクリプトクラスを使用する方法(私が知っていたと思った通り)

"1120:未定義のプロパティcsvのアクセス" および "1120:未定義プロパティーのアクセスcompleteHandler。"

私が考えることができるのは、csvクラスを正しくインポートしていないか、クラス自体が何とか壊れているということだけです。自動ヒントに基づいて直接入力したので、インポートパスが正しいことがわかります。以下のコードは、csv libサイトのhow-to wikiから直接コピーされています。

また、flashbuilderで外部のactionscriptクラスを動作させるために必要な特別なことがありますか?

<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

関連する問題