1

Air アプリケーションに CSVLib を実装しようとしていますが、まったく論理的でないようなエラーが表示されます。

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

私が考えることができる唯一のことは、csvクラスを適切にインポートしていないか、クラス自体が何らかの形で壊れていることですか? 自動ヒントに基づいて直接入力したため、インポート パスが正しいことはわかっています。以下のコードは、csv lib サイトのハウツー wiki から直接コピーしたものです。

または、外部の actionscript クラスを 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>
4

1 に答える 1

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 オブジェクトの完全なハンドラーで行うことができます。

于 2011-01-30T20:36:39.897 に答える