2011-12-15 7 views
0

クラス内でイベントリスナーを使用しようとしていますが、動作させることができません。クラスでイベントリスナーを使用する

このクラスはHTTPRequestを処理するためのもので、ResultEvent.RESULTを使用しています。誰か助けてくれますか?

ありがとうございます!

public class GetXML 
{ 
    public var content:Object; 
    public var url:String; 
    public var database:HTTPService; 

    public function GetXML() 
    { 
     this.content = content; 
     this.url = url; 
     this.database = database; 
    } 

    public function setURL(url:String):void { 
     this.url = url; 
    } 

    public function getContent():void { 
     this.database = new HTTPService(); 
     this.database.url = this.url; 
     this.database.addEventListener(ResultEvent.RESULT, foo); 
     this.database.send(); 
    } 

    public function foo(event:ResultEvent):void { 
     Alert.show("foo"); 
    } 

} 
+0

'FaultEvent.FAULT'も聞くとどうなりますか? –

+0

いいえ、その関数はセッターのようなものです。私はthis.database.urlをトレースすると、それは私に正しいurlを与えます。だから私はそれが問題だとは思わない?私もエラーが発生しない...それはちょうどfoo関数を実行しないので、私は私のイベントリスナーが動作しないと思いますか? – Dnns

+0

私は 'FaultEvent.FAULT'を聞いても何も起こりません。私が考えるように:eventlistenerは動作しませんが、私はそれを修正する方法を知らない – Dnns

答えて

0
this.database.addEventListener(ResultEvent.RESULT, foo); 

私はAPIが終わった前に、このサンプルコードが公開されたと思います。

documentationによると、HTTPServiceクラスは2つまたは5つのイベントを送出します(パッケージに応じて - もちろん、Adobeが使用している新しいドキュメントシステムは完璧ではないようです)。

それにもかかわらず、addEventListener()メソッドは、最初の引数として、リッスンされるイベントタイプを表す文字列をとります。あなたのコードでは、 "ResultEvent.RESULT"を使用します。 documentationによると、ResultEventクラスにはそのような定数はありません。 (また、ResultEventクラスをインポートしていませんが、FlexではなくFlashを使用しているため、ResultEventクラスがコアであるかどうかわかりません)

実際のテスト文字列:

this.database.addEventListener('result', fooResult); 
this.database.addEventListener('fault', fooFault); 
this.database.addEventListener('invoke', fooInvoke); 

はい、私も定数を使用することをお勧めしますが、それが最初に動作するかどうかを見てみましょう。 :)

0

実際には、documentationによると、ResultEventクラスにはそのような定数があります。私にとって

this.database.addEventListener(ResultEvent.RESULT, foo); 

は正常に動作し、アラートボックスを表示します。私は試してみます:

とそれぞれの警告をチェックするか、チャールズ/ HttpFoxを使ってリクエストやレスポンスがあるかどうかを確認してください。

+0

興味深い。あなたのリンクを経由しても、私はまだResultEvent.RESULTが利用可能な定数としてリストされているのを見ていません。 更新:FLASHをフィルタリングしました。 FLEXの結果は表示されませんでした。今や意味がある。 :) –

関連する問題