on mouseUp
-- 「dropImageS」のイメージ・データ(バイナリ)を「tBinary」に収納
put the imagedata of image "dropImageS" of stack "speechImage" into tBinary
-- バイナリの総文字数
put the length of tBinary into tLength
-- モザイクの左右天地 = イメージ「dropImageS」のサイズ
put the width of image "dropImageS" of stack "speechImage" into tWidthS
put the height of image "dropImageS" of stack "speechImage" into tHeightS
-- カウンターに始めは0(ゼロ)を入れる
put 0 into tCount
-- 4文字ごと(ステップして)リピートする。 バイナリ総数から最後の4文字を引いた数まで
repeat with i = 1 to (tLength - 4) step 4
-- リピートするごとに1を加える
add 1 to tCount
if tCount = tWidthS then -- tWidthSはモザイクの左右数
put cr into tConj -- カウンターがモザイクの左右数になったら行替え(cr)を
put 0 into tCount -- カウンターを0に戻す
else
put tab into tConj -- 上の条件以外は「tab(タブ)」で区切る
end if
-- 始めのcharator i はアルファなので除外。カンマの後にスペースを入れる
put charToNum(char (i + 1) of tBinary) & comma & space & \
charToNum(char (i + 2) of tBinary) & comma & space &\
charToNum(char (i + 3) of tBinary) & space &\
tConj after tMosaicColor
end repeat
put tMosaicColor into fld "tImageData" -- 10進数RGB値
set the backgroundColor of grc "testColor" \
to the backgroundColor of this cd
end mouseUp
次にこの10進数のRGB値を、読み上げるスクリプトを書きます。
on mouseUp
-- フィールドにある10進数のRGB値を「mosaicRGB」に収納
put fld "tImageData" into mosaicRGB
-- 「mosaicRGB」のアイテム1が数字出なかったらビープを鳴らしてハンドラーを抜ける
if isNumber (item 1 of mosaicRGB) is false then
beep
exit to top
end if
-- rowで分割して「mosaicRGB」の配列にする
split mosaicRGB by row
-- 「mosaicRGB」の「the keys」がいくつあるか「tVNum(縦何行?)」
put the num of lines of (the keys of mosaicRGB) into tVNum
-- itemDelをタブにして配列「 mosaicRGB[1]」の横は何アイテムか
set itemDel to tab
put the num of items of mosaicRGB[1] into tHNum
-- 縦をtVNum回繰り返す
repeat with i=1 to tVNum
-- 横をtHnum回繰り返す
repeat with j=1 to tHnum
-- 繰り返している途中にマウスクリックがあったら終わらせる
if the mouseClick then
set the backgroundColor of grc "testColor" \
to the backgroundColor of this cd
put "" into fld "tRGB"
exit to top
end if
-- 横列「mosaicRGB[i]」のアイテムjをtRGBに入れて
put item j of mosaicRGB[i] into tRGB
set the backgroundColor of grc "testColor" to tRGB
put tRGB into fld "tRGB"
-- tRGB を読み上げる。
--「readText」はスタック「speechImage」に書いたコマンド
readText tRGB
wait 260
end repeat
end repeat
-- 全て終わったらカラーをカードの色にして、RGB値のフィールドをカラに
set the backgroundColor of grc "testColor" \
to the backgroundColor of this cd
put "" into fld "tRGB"
end mouseUp