問答収集 カテゴリ:Flashプログラミング
現在のスレッド一覧 / 新規に質問を投稿
レス数:2 / 状態:解決済み / No:63 / ATOM
1 名前:混乱 日付:2010/09/21(火)00:36:56 ID:8K2EuWQOLB8D
はじめまして。イベントについて一日近く調べてもわからなかったので質問をさせていただきます…

ドキュメントクラスにあるクラスをもとに作成したインスタンスがあります。
このインスタンスから親にあたる(?)ドキュメントクラスにイベントを送りたいのですが、
なかなか上手く行きませんでした。

はじめはイベントをdispatchEventを使えば同じクラス内でなくてもaddEventListenerで受け取れると
思いドキュメントクラスに
this.addEventListener ~
と記述したのですが、イベントを受け取ることができませんでした。そこで、
a.addEventListener ~
のようにイベントを送信するインスタンス自身にaddEventListenerをセットしたところ上手くいきました。(以下のスプリクトです)

//Main.as
package {
import flash.events.*;
import flash.display.*;
public class Main extends Sprite{
private var a:cl=new cl();
public function Main(){
a.addEventListener("event0",function (e:Event){
trace("get event1");
});
}
}
}

//cl.as
package {
import flash.events.*;
import flash.display.*;
public class cl extends Sprite{
public function cl(){
this.dispatchEvent(new Event("event1"));
}
}
}

しかしながら、これではもしインスタンスを作成した時のコンストラクタの処理がドキュメントクラスから
a.addEventListenerの処理を行うのが遅かった場合、イベントを受け取れないかもしれないし、
なんだか記述の仕方としても不自然な気がします。

異なるインスタンス間でイベントを送受する場合にはどうするのが一般的なのでしょうか…
長文と分かりづらい説明で申し訳ありませんが、教えていただけけると助かります。





2 名前:状態変更 日付:2010/09/21(火)00:48:08 ID:8K2EuWQOLB8D
この質問の状態を『解決』に変更しました。
このスレッドについて
質問の状態 :
解決済み
投稿開始日 :
2010/09/21(火)00:36:56
投稿終了日 :
2010/09/21(火)00:48:08
投稿者 :
混乱
レス総数 :
2
スレッド番号 :
63
MondoCollectionSystem ver.0x00020000 by Hakuhin