0

Web を検索しましたが、問題に対する答えが見つかりません。txtファイルを読み取ってairアプリに表示するairアプリを構築していますが、奇妙な理由で同じ行に2つのエラーが発生します。

エラー:

-1067 : タイプ void の値が関連のないタイプの関数に暗黙的に強制されています。

-1067:タイプ Class の値を無関係なタイプの flash.events:Event に暗黙的に強制します。

コード:

            public function init():void {
                stage.displayState =   StageDisplayState.FULL_SCREEN_INTERACTIVE;

            }

            public function txtReeks1_creationCompleteHandler():void {
                    var url:String = "Files/Reeks1.txt";
                    var loadit:URLLoader = new URLLoader();
                    loadit.addEventListener(Event.COMPLETE, completeHandler(Event));
                    loadit.load(new URLRequest(url));
            }

             public function completeHandler(event:Event):void {
                txtReeks1.text =  event.target.data;    
                stripLinesFromTextArea(txtReeks1);
            }   

             public function stripLinesFromTextArea(textArea:TextArea):void { 
                var txt:String = textArea.text; 
                var re:RegExp = /\n+/g; 
                txt = txt.replace(re,""); 
                textArea.text = txt; 
            } 
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <mx:TabNavigator x="0" y="0" width="100%" height="100%">
        <mx:Canvas id="Reeks1" width="100%" height="100%" label="Reeks1">
            <mx:TextArea id="txtReeks1" x="0" y="0" width="100%" height="100%"
                         creationComplete="txtReeks1_creationCompleteHandler()"
                         fontFamily="Lucida Console" fontSize="20"/>
        </mx:Canvas>
        <mx:Canvas id="Reeks2" width="100%" height="100%" label="Reeks2">
        </mx:Canvas>
        <mx:Canvas id="Reeks3" width="100%" height="100%" label="Reeks3">
        </mx:Canvas>
    </mx:TabNavigator>
</mx:WindowedApplication>

過去2日間答えを探しているので、誰かが私を助けてくれることを願っています

4

3 に答える 3

3

問題は、txtReeks1_creationCompleteHandler()以下の行のメソッドにあります。

loadit.addEventListener(Event.COMPLETE, completeHandler(Event));

2 番目の引数は、void を返す関数自体の実行ではなく、関数への参照である必要があります。したがって、次のように読む必要があります。

loadit.addEventListener(Event.COMPLETE, completeHandler);
于 2012-08-29T00:01:06.003 に答える
3
loadit.addEventListener(Event.COMPLETE, completeHandler(Event));

これが問題です。ハンドラーを呼び出して、Eventクラスを渡しています。リスナーを追加するときは、関数を呼び出すのではなく、関数を参照するだけです。

loadit.addEventListener(Event.COMPLETE, completeHandler);
于 2012-08-29T00:00:56.327 に答える
0

あなたのエラーは次の行にあります:

loadit.addEventListener(Event.COMPLETE, completeHandler(Event));

関数の結果をイベント ハンドラーに渡すのではなく、関数自体に渡す必要があります。

loadit.addEventListener(Event.COMPLETE, completeHandlerEvent);
于 2012-08-29T00:01:32.080 に答える