Skip to content

Instantly share code, notes, and snippets.

@soundkitchen
Created July 12, 2010 08:41
Show Gist options
  • Save soundkitchen/472261 to your computer and use it in GitHub Desktop.
Save soundkitchen/472261 to your computer and use it in GitHub Desktop.
package
{
import flash.display.Sprite;
import org.osflash.signals.Signal;
/**
* as3-signals サンプル 1
*/
public class Sample1 extends Sprite
{
private var _signal:Signal;
/**
* コンストラクタ
*/
public function Sample1()
{
// シグナル作る
_signal = new Signal();
// シグナルにリスナーを登録
_signal.add(signalHandler);
// シグナルをトリガー
_signal.dispatch();
// リスナーを解除
_signal.remove(signalHandler);
}
/**
* シグナルがトリガーされたら呼ばれる
*/
private function signalHandler():void
{
trace("dispatched.");
}
}
}
_signal = new Signal();
// 一回だけ処理したいリスナーを登録
_signal.addOnce(signalHandler);
// シグナルをトリガー
// ココで処理されてリスナー解除
_signal.dispatch();
// ココでは処理されない
_signal.dispatch();
_signal = new Signal();
// しこたまリスナー登録
_signal.add(signal1Handler);
_signal.add(signal2Handler);
_signal.add(signal3Handler);
_signal.add(signal4Handler);
_signal.add(signal5Handler);
// 全解除
_signal.removeAll();
// 引数の型指定をしてシグナルを作る
_signal = new Signal(String, Number, InteractiveObject);
// シグナルを登録
_signal.add(signalHandler);
// 引数を渡してトリガー
_signal.dispatch("spam", Math.PI, stage);
// 型が違うとランタイムエラーになる
_signal.dispatch(100, Math.PI, stage);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment