ActionScript3でEvent.COMPLETEを待つ方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
paw
記事: 15
登録日時: 13年前

ActionScript3でEvent.COMPLETEを待つ方法

#1

投稿記事 by paw » 11年前

ActionScript3.0にて、外部のcsvを取得する以下のプログラムを組んだのですが、それについて質問があります。

コード:

package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	public class Main extends Sprite{
		public function Main():void {
			var reader:CReadData = new CReadData("./data.csv");
			reader.getdata();
		}		
	}
}

import flash.events.Event;
import flash.events.TimerEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
class CReadData {
	private var myloader:URLLoader;
	public function CReadData(v_path:String) {
		trace("(1)CReadDataコンストラクタ");
		myloader = new URLLoader();
		var request:URLRequest = new URLRequest(v_path);
		myloader.addEventListener(Event.COMPLETE, onComplete);
		myloader.load(request);
	}
	public function getdata() :void{
		trace("(3)読み込んだデータを取得");
	}
	public function onComplete(e:Event):void {
		trace("(2)読み込み完了");
	}
}
実行結果
(1)CReadDataコンストラクタ
(3)読み込んだデータを取得
(2)読み込み完了

このプログラムを実行すると、読み込みが完了する前に、読み込んだデーターを取得してしまいます。
データを読み込み終わってから取得、つまり(1)(2)(3)の順で実行されるようにしたいのですが、myloader.loadを呼んだ時点で、onCompleteを待たずに、returnしてしまうようです。
Event.ENTRY_FRAMEとフラグを使って強引に実行することはできるようですが、クラス内で完結させたいので、それを使わず、静的にonCompleteされるまで処理を待つ、なにか良い方法はないものでしょうか

“C言語何でも質問掲示板” へ戻る