2009年10月29日木曜日

ダイアログっす(1)

久しぶりのスクリプトネタっす。
頭の整理が出来たモノから書いていくっす。
どうもぺんぎんっす( ◎v◎ )


[12個以上ボタンがあるダイアログって、どう作る?]
がテーマっす。
ラクで簡単な方法を考え中なんっすけど、アイデアがあれば
教えてくださいっす。
最初なので、自分の方法を載せるっす。

ここでのケースは、
項目A - 値A1, 値A2, 値A3,・・・
項目B - 値B1, 値B2, 値B3,・・・
項目C - 値C1, 値C2, 値C3,・・・
と、なってる場合を考えるっす。
たとえば、
項目A = サイズ
項目B = 色
項目C = 透明度
で、値にはそれぞれに合ったものが入ってるとかっす。


ここから自分の方法についてっす。
まず、
list 項目A = [値A1, 値A2, 値A3,・・・];
list 項目B = [値B1, 値B2, 値B3,・・・];
list 項目C = [値C1, 値C2, 値C3,・・・];
というふうに、全部listにぶち込んでおくっす。

(i) 値が11個以下の場合
値全てと、[項目選択ページ(以下TOP)に戻る]ボタンだけ

(ii) 値が12個以上の場合
グローバル変数として、integer pageを宣言しておくっす。
llList2Listを使って9個抜き出したものと、
[1つ前のページに戻る][TOPに戻る][1つ先のページに進む]
ボタンを出すっす。
最後に中途半端な数が余った場合は、[何もしない]ボタンで穴埋めっす。
空っぽだとダメっすから、テキトーに、スペースとかっすね。


とまぁ、誰でも思いつきそうな方法っす。
A,B,Cそれぞれでやることが違うっすから、
if(項目AをTOPで選択した)
{
  項目Aを反映させる(ダイアログで選ばれた値); // ←ユーザー関数
}
else if(項目BをTOPで選択した)
{
  項目Bを反映させる(ダイアログで選ばれた値); // ←ユーザー関数
}
else if(項目CをTOPで選択した)
{
  項目Cを反映させる(ダイアログで選ばれた値); // ←ユーザー関数
}
として、3つとも別々に処理することを書いてやらないといけないっす。
救いは、元は1つのlistっすから、インデックスによる対応付けが
出来ることっすね。
ユーザー関数で利用できるかもっすね。


結論としては、やることが違えば、それについて書かないといけなくって、
あれこれやってみたけど結局は面倒くさい・・・ってことっすかね?

0 件のコメント:

コメントを投稿

Free Avatar