日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2010年1月4日月曜日

その他のコントロール(3): ラジオボタン(由来と種類)

さて、今回は「ラジオボタン」

いままで勉強してきた「ボタン」、「フィールド」、「スライダ」、「チェックボックス」は、それぞれ単体でも機能したが、「ラジオボタン」だけは単体では機能できない。

それは、「ラジオボタン」が
1つのボタンを押すと、他の押されていたボタンが押されていない状態に戻る。常に1つのボタンだけが押された状態になる(Wikipedia)
という特徴を持つからである。


----------------------------------------
(1)名前の由来:

ラジオボタンとは、元々カーラジオの選曲ボタンが名称の由来である。
昔のカーラジオはこの選曲ボタンがメカニカルな構造で制御されていた。
ボタンを押すとガチャという音と共に、それまで押されてへこんでいたボタンが元の位置に戻ってくる。
子供のころは、そのアクションがおもしろく退屈なときにいじったりしていた。
複数選択状態にしようと、ボタンを同時に押して遊んだ記憶もある

さて、「ラジオボタン」は、なぜ丸いのか?

上にある写真もそうだが、ラジオの選曲ボタンは、四角いものがほとんど。
記憶の片隅には丸いボタンが並んでいたのを見た記憶がある。

調べてみると1949-1950のフォードにはこの丸いボタンのカーラジオがついていたようで、おそらくPopeyeなどのファッション雑誌に載っていたのが頭の中に残っていたのだろう。

ちなみにこのころのフォード車はこんな感じです。

このラジオボタンすでに1956のフォード・サンダーバードでは四角いボタンになっている。

現在のGUIで使われるラジオボタンのデザインがいつ出来たのかはわからないが、少なくとも1950年代ではないだろう。(参照:Wikipedia
それに、GUIに初めてラジオボタンが使われた時に、すでに丸かったかどうかもわからないが、ここでは最初から丸ボタンであったと言うことにしておく。

さて、おそらく最初にGUIのラジオボタンが作られたころの車のカーラジオは、すでに四角ボタンが主流だったのではないかと思う。
そうすると、丸ボタンのデザインを採用したのは、意図的であり、理由があるはずだ。

●プログラミング上の制約、もしくは利便性から丸いデザインにしたのか、
●新しい技術「コンピュータ」との対比効果を狙って、古いカーラジオデザインにしたのか。
もしくはその両方の理由からか、現在に引き継がれている丸いデザインになったと思われる。


----------------------------------------
(2)コマンドの種類

さて、Maya2009オンラインヘルプではradioの名前がつくものは4種類。

radioButton:一つのラジオボタンを作る、必ずradioCollectionと対で使う。
radioButtonGrp:1~4個のラジオボタンを横に並べ、グループにしたもの。
radioCollection:ラジオボタンをグループとしてまとめる。
radioMenuItemCollection:複数のメニュー(テキスト)項目をグループにまとめ、ラジオボタンのように排他的選択が出来るようにする。


他のコントロールと違い、必ずラジオボタンは複数必要である。
そして、その中で一つだけがオンになるので、複数のボタンが同じグループとしてまとめられている必要がある。

そのため、
1)単数のボタンを作成する「radioButton」はスクリプト内で複数回使用し、
2)それをradioCollectionで一つのグループとして扱う必要がある。

これを一つの機能にまとめたのが、「radioButtonGrp」。
グループの編成を気にする必要がありません。
4個までのラジオボタンしか対応していませんがこのコマンドを二度使い、「-shareCollection」でグループ名を指定すれば、二つのグループを一つのグループとして扱うことが出来ます。
(戻り値の取得がやや複雑になる。3つ以上のグループに関しては未確認。)

----------------------------------------
まとめ
----------------------------------------
●ラジオボタンそのものを表示するコマンドは二つだけ。

それぞれボタンの数によって異なる。
●4つ以下:radioButtonGrp
●1~無制限:radioButton + radioCollection

これからそれぞれのコマンドを検証していきたいと思います。
    

0 件のコメント:

コメントを投稿