メニューへ トップページへ

「実用性のあるボタン」

ボタンを使って選択肢を作る

1.今までのボタン

マイクロワールドの基本でも説明したように、ボタンは隠すことができず、消去してしまうとそれ以降の処理ができないという欠点がありました。そのため、いままで選択肢や文章を読み進めるために「受けたキー」を使ったキーの操作をしていました。しかしキーを使うには直接入力にしなければならないほか、間違って違うキーを押してしまうと動作が止まってしまうなどのエラーがありました。そこで、ここではマウスだけで選択肢や文章の読み進めができるような方法を紹介します。

2.カメをボタンとして使う

ボタンの欠点は「隠せない事」です。ボタンがいつも表示されてしまうため、必要のないところでボタンを押されてしまう可能性があります。そこで、ボタンをカメにします。ここでは、ボタンとして使うカメのことを「ボタンカメ」と呼ぶ事にします。カメだと隠すことができるほか、場所の移動、形の変形も容易なので、カメをボタンとして使うことにします。

2.汎用性のあるボタン作成

そこで、下で紹介しているようなボタン作成の手順を作りました。下の手順で1つのセットとなっています。この手順では、「ボタン番号」という引数をとっていますが、この引数が「1」のとき、このボタンは次の手順に進むだけの役割となるため、ボタン画像は「次へ」という画像を設定しています。引数が「2〜8」の時は、ボタンは選択肢の役割を果たし、ボタン画像は数字になります。

ボタン処理

※これがメインの処理になります。

手順は ボタン処理 :ボタン番号 :実行手順
ボタン消去
ボタン配置 :ボタン番号
なまえは "特殊番号 1

もしどちらかを :ボタン番号 = 1 「ボタンカメ1、 なまえは "選択ボタン 1 めいれいは :実行手順」「整理番号調節 なまえは "整理番号 1 くりかえす 8 「整理番号決定 かめは (ワード "ボタンカメ :整理番号) めいれいは ワード "ボタン判定 ワード  "| | ワード :整理番号 ワード "| | :実行手順  なまえは "特殊番号 :特殊番号 + 1」 」
おわり

※以下は、ある不都合に関する処理。詳しくは後述。

手順は 選択リセット
なまえは "選択ボタン 0
おわり

手順は 整理番号調節 
なまえは "元変数 「実行1 実行2 実行3 実行4 実行5 実行6 実行7 実行8」
なまえは "元数値 「1 2 3 4 5 6 7 8」
変数取り込み
なまえは "番号 1
特殊ソート
おわり

手順は 特殊ソート
もしどちらかを (なかみ ワード "実行 :番号) = :選択ボタン 「なまえは "シフト変数 なかみ ワード "実行 :番号 なまえは ワード "実行 :番号 なかみ ワード "実行 8 なまえは ワード "実行 8 :シフト変数」「なまえは "番号 :番号 + 1 特殊ソート」
おわり

手順は 整理番号決定
なまえは "整理番号 なかみ ワード "実行 :特殊番号
おわり

手順は ボタン判定 :ボタン
なまえは "選択ボタン :ボタン
おわり

※ボタンを表示数に応じて等間隔に中央に配置する手順

手順は ボタン配置 :ボタン番号 

なまえは "幅 四捨五入 500 / :ボタン番号
なまえは "整理番号 1

くりかえす :ボタン番号 「かめは (ワード "ボタンカメ :整理番号) たてのいちは -200 よこのいちは -250 + :幅 / 2 + :幅 * (:整理番号 - 1) かたちは 63 + :整理番号 でてくる なまえは "整理番号 :整理番号 + 1 」

もし :ボタン番号 = 1  「かたちは 72」
おわり

※すべてのかめを隠す手順

手順は ボタン消去
なまえは "整理番号 1
くりかえす 8 「かめは (ワード "ボタンカメ :整理番号) かくれる なまえは "整理番号 :整理番号 + 1 」
おわり

3.使い方

使うのは「ボタン処理」で、あとはその中の処理になります。 例えば、「A(手順名)」→「ボタンを押す」→「B」という流れを作りたいとき、Aの手順の最後に「ボタン処理 "1 "B」と入力します。「1」というのは、先ほど説明したボタン番号で、「次へ」のボタン画像です。こうすると、Aの手順を実行したあとボタンが表示され、Bの手順に移行します。また、「A」→「3つの選択肢」→「B」というように選択肢を使いたい場合は「ボタン処理 "3 "B」とします。こうすると3つのボタンが表示されます。ここで、どこを選んでもBに行き着くではないかと思うかもしれません。その通りです。しかし、選択したボタンの番号は「選択ボタン」という変数に格納されるため、Bの中で「もし :選択ボタン = 1 …」というように場合わけすればよいのです。

4.不都合

ここで、ひとつ問題が発生してしまいます。ボタンカメの命令の書き換えです。実は、カメの命令もボタンの消去同様、書き換えると実行していた手順が止まってしまうという事が明らかになったのです。そこで、選択したボタンの命令を最後に書き換えるために、ソートを使っています。なので今は問題ありません。

5.サンプル

といってもわかりにくいので、サンプルを用意しました。実際体験してみてください。

ネット上で実行する
ボタン処理サンプル(11KB)をダウンロードする

メニューへ