2009-05-31 7 views
0

私は(すなわち、XMLLoader)と文書クラス(document.as)とdocument.asに、私はインスタンス化していますXMLLoaderローダークラスを持っている場合移動データFlexで

var ldr:XMLLoader = new XMLLoader(url); 

...とdocument.asクラスにはテキストボックスがあります。このテキストボックスは、XMLLoaderからの進捗状況を更新して、URLLoadersのprogressイベントを使用して継続的に作成したいと思っています。意味、ボックスは、受信しているバイト単位で負荷を表示します

私はいつもイベントからデータをプッシュし、別のクラスに追加する方法がわかりません。例:

myLstnr.addEventListener(ProgressEvent.PROGRESS, getProgress); 

private function getProgress():void 
{ 
    // as progress updates, move it to document.as class's textbox 
{ 

答えて

0

ProgressEventを再ディスパッチする必要があります。カスタムメイドのイベントを使用して、イベントオブジェクトを格納できます。ですから、例えば:CustomObjectDataEventは、作成するカスタムイベントクラスをある

private function getProgress(event:ProgressEvent):void { 
    dispatchEvent(new CustomObjectDataEvent(event, 'progress')); 
} 

その店カスタムイベントオブジェクト内のオブジェクト(によってProgressEvent)。

package events 
{ 
    import flash.events.Event; 

    public class CustomObjectDataEvent extends Event 
    { 
     public var objectData:Object; 

     public function CustomObjectDataEvent(objectData:Object, type:String, bubbles:Boolean=false) { 
      super(type, bubbles); 
      this.objectData = objectData; 
     } 

     public override function clone():Event { 
      return new CustomObjectDataEvent(objectData, type, bubbles); 
     } 
    } 
} 

チェックアウト:カスタムイベントをディスパッチの詳細についてはhttp://livedocs.adobe.com/flex/3/html/createevents_3.htmlここでは、このオブジェクトを格納するカスタムイベントの実装例です。

+0

OKからインクリメンタルプログレスのudpatesを取得するようにしたいのですが、どうすればデータをCustomObjectDataEventからプッシュ/プルすることができますか?つまり、main.mxmlでは、どのようにして何バイトの読み込みが行われたかを徐々に更新するのですか? –

+0

途中でありがとう... –

+0

お待ちください、私はそれを働かせました。 EventDispatcherとdispatchignをカスタムクラスに拡張して動作させました。しかし、私はこれがどのように機能するのか分かりません。それはより良い方法かもしれないようですが、私はそれを理解していません。 –

0

イベントハンドラ(getProcess)は、ProgressEventをパラメータとして受け入れる必要があります。それから、必要な情報が得られます。そうするときは、必要なテキストフィールドに書き出します。

document.textfield.text = event.bytesLoaded; 
+0

申し訳ありませんが、私はその質問が誤解されたと思います。私の例では、getProcess()にイベントのパラメータ(ProgressEvent)を与えるのを忘れていました。 しかし、私の質問は、そのデータをXMLLoaderクラス内のProgressイベントから別のクラスのテキストフィールドに移動することでした。 (大変申し訳ありませんが、重点を置いておきます) –

+0

問題は何ですか?データをプッシュしたい別のオブジェクトへの参照を取得する方法がわかりません。 – artemb

+0

はい、私は正しく質問を書いていないと思います。私が知っておくべきことは何ですか。私のmain.mxmlクラスには、外部ローダークラスから常に更新したい変数があります。したがって、main.mxmlには「[Bindable] var something:String;」という文字列があります。これはラベルコントロールにバインドされています。私はそのラベルコントロールが、外部クラスから、具体的にはProgressEvent –

関連する問題