Thread.next で、次のようにパラメータを次の実行関数に受け渡せたら便利じゃないですか?
protected override function run():void
{
next(func, ['abc', 123]);
}
private function func(s:String, n:uint):void
{
trace(s, n); // abc 123
}
interrupted と timeout も同様。
で、こっからがちょっと議論で、エラーハンドラとイベントハンドラで、毎回引数書くのは面倒じゃないか? (いらない場合も多い) ということで、次の二つの提案。
ひとつめは、引数からは外して、Thread のインスタンスプロパティにしてしまうという方法。次のような感じ。
protected override function run():void
{
error(Error, errorFunc);
event(eventFunc, target, 'event');
}
private function errorFunc():void // e:Error と t:Thread 引数が無くなる
{
trace($error, $errorThread); // 代わりに $error と $errorThread プロパティで取れる (名前は暫定)
}
private function eventFunc():void // e:Event 引数が無くなる
{
trace($event); // 代わりに $event プロパティで取れる (名前は暫定)
}
受け渡しパラメータつきの場合は
protected override function run():void
{
error(Error, errorFunc, ['abc', 123]);
event(eventFunc, target, 'event', ['abc', 123]);
}
private function errorFunc(s:String, n:uint):void // e:Error と t:Thread 引数が無くなる, 引き渡されたパラメータわたってくる
{
trace($error, $errorThread); // 代わりに $error と $errorThread プロパティで取れる (名前は暫定)
}
private function eventFunc(s:String, n:uint):void // e:Event 引数が無くなる, 引き渡されたパラメータわたってくる
{
trace($event); // 代わりに $event プロパティで取れる (名前は暫定)
}
ふたつめは、パラメータ指定に入れ込むという方法。
protected override function run():void
{
error(Error, errorFunc, [$ERROR, 'abc', $ETHREAD, 123]); // $ERROR, $ETHREAD (名前は暫定) でエラーとエラースレッドが引数として欲しい!と宣言
event(eventFunc, target, 'event', [$EVENT, 'abc', 123]); // $EVENT (名前は暫定) でイベントが引数として欲しい!と宣言
}
private function errorFunc(e:Error, s:String, t:Thread, n:uint):void // 指定された部分に渡ってくる
{
}
private function eventFunc(e:Event, s:String, n:uint):void // 指定された部分に渡ってくる
{
}
こうしたほうがいい、ああしたほうがいい、いやこうだろ、ああだろ、そもそもこんなのいらない、いやいるよなどご意見募集です!!