見出し画像

micro:bit 処理中に押されるボタンに反応しない

最初の一歩

 ボタンが押されたときに処理をさせたい場合、ふつうは「ボタンが押されたとき」のハンドラに処理を書くと思います。
 ところがその処理に、ある程度時間がかかる処理を書いていると、ボタンが押されたことが蓄積してしまいます。
 処理中にボタンが押されると、今行なっている処理が終わったあと、処理中に押されたボタンに反応し、すぐさままた同じ処理が始まってしまいます。
 これは、イベントがキューイングされていると考えられます。ちなみに、2回押すと2回、3回押すと3回、同じ処理が繰り返されます。
 先に公開した「最初の一歩」は、そのようになっていました。

最初の一歩
https://makecode.microbit.org/_5dzTAg4WHVWr

 「最初の一歩」はAボタンでスタートさせると、LEDの点灯(輪)が広がってゆき、やがて全体が点滅します。点滅が始またったあと、ゆさぶるとLEDは消え、処理は終了というものです。
 処理が行なわれている途中、すなわちLEDが点灯、点滅しているあいだに、何回もAボタンを押すと、その押した数だけ、処理が繰り返されます。

処理中に押されるボタンに反応しない

ここから先は

491字

¥ 150

この記事が気に入ったらチップで応援してみませんか?