LiveCodeのファンクション「colorNames」で、少し色彩の名前について考えてみます。これは「X11 Color Names」が元になって、LiveCodeに取り入れられているファンクションです。ウェブ・カラーの標準的な色の名称になっています。実際にはいくつか色の名称が、HTML, CSSと違うものもあるそうですが、ここでは大きな問題ではありません。
command readText pText
put item 1 of the label of btn "tName" into tName
put the hilitedButtonName of grp "readSpeed"into tSpeed
revSetSpeechVoice tName
revSetSpeechVolume 130
revSetSpeechSpeed tSpeed
revspeak pText
end readText
-- カード左下にあるボタン「speechColorNames」に書いたスクリプト
on mouseUp
-- ハイライトにしたテキストを it に収納
get the selectedText
if it is empty then exit to top
repeat for each line tLIne in it
if the mouseClick is true then exit to top
readText tLIne
wait 120
end repeat
end mouseUp
on mouseUp
put "" into fld 2
set the cursor to watch
-- 全てのカラーネームを tColorLinesに
put the colornames into tColorLines
-- 何行あるか
put the num of lines of tColorLines into tNum
-- 行数回リピートする
repeat with i=1 to tNum
-- 始めに色彩を表示させる記号「 ◼︎」を色名の最後につける
put line i of tColorLines &" ◼︎" &cr after fld 2
-- 最後の文字(記号 ◼)をその色彩名にする
set the forecolor of char -1 of line i of fld 2 \
to line i of tColorLines
-- 記号に設定した色彩のRGB値を読み取って
-- 書き出してあるカラーネームの前に入れてタブでアキを取る
put the forecolor of char -1 of line i of fld 2 \
& tab before line i of fld 2
end repeat
end mouseUp
on mouseUp
put "" into fld 3
set cursor to watch
-- フィールド2にあるデータをtColorNamesに収納
put fld 2 into tColorNames
-- アイテム1(R値)を数字の大きい順に並び替え
sort lines of tColorNames descending numeric
-- 並び替えたデータをフィールド3に入れる
put tColorNames into fld 3
end mouseUp
同じく、次のボタン「sortByItem2 _ G」のスクリプト。
on mouseUp
put "" into fld 4
set cursor to watch
put fld 3 into tColorNames
repeat for each line tLine in tColorNames
-- R値とカンマを取り除く、アイテム2のG値を始めの値に
put "" into item 1 of tLine
put "" into char 1 of tLine
put tLine & cr after tTotalLines
end repeat
-- G値を数字の大きい順に並び替え
sort lines of tTotalLines descending numeric
-- 並び替えたデータをフィールド4に入れる
put tTotalLines into fld 4
end mouseUp
同じく、次のボタン「sortByItem3 _ B」のスクリプト。
on mouseUp
put "" into fld 5
set cursor to watch
put fld 4 into tColorNames
repeat for each line tLine in tColorNames
-- G値とカンマを取り除く、アイテム3のB値を始めの値に
put "" into item 1 of tLine
put "" into char 1 of tLine
put tLine & cr after tTotalLines
end repeat
-- B値を数字の大きい順に並び替え
sort lines of tTotalLines descending numeric
-- 並び替えたデータをフィールド5に入れる
put tTotalLines into fld 5
end mouseUp