labelステートメント
September 13, 2007
ActionScript3.0のおさらいをしていて、labelステートメントを見逃していたことに気がついた。
『知っていると得をするActionScript3.0新文法(BeInteractive!)』にはforステートメントを使ったサンプルが掲載されています。labelステートメントを使うと多重ループを一気に抜けることができると。
switchステートメントでも利用可能ということなので、試してみました。
次のソースではキーボード操作に対してswitchステートメントで処理分岐しています。
testLabel:switch(e.keyCode)
{
case 48://0
case 49://1
case 50://2
case 51://3
case 52://4
case 53://5
switch(e.keyCode)
{
case 48://0
case 49://1
case 50://2
case 51://3
trace("0〜3");
break testLabel;
case 52://4
case 53://5
trace("4〜5");
break;
}
trace("外側のswitch通過");
break;
case 54://6
case 55://7
case 56://8
case 57://9
trace("6〜9");
break;
default:
trace("etc");
break;
}
0〜3が押された時
次のコードが実行され、『0〜3』が出力されます。ここではbreak時に外側のswitchステートメントにつけたlabelを指定しているので、外側のswitchも一気にbreakします。
trace("0〜3");
break testLabel;
4〜5が押された時
0〜3に対し、次のコードではlabelを指定しないbreakを行っているので、『4〜5』と出力されたあと、外側のswitchステートメントのコードも実行されるので、『外側のswitch通過』と続けて出力されます。
trace("4〜5");
break;
カテゴリー:
Trackback
Trackback URL for this entry:



















