下面介紹一個用來檢測餅圖顏色的簡單例子。
首先在paint窗口中畫彩色餅圖,保存為“circle”,在text窗口中作輸入文本“the color is:”,并保存為“textbar”。
將上面兩個劇組成員拖到舞臺上,設置他們的屬性。將餅圖墨水效果設置為“matte”或“background transparent”,消除白色邊框。在總譜中將兩個成員的長度均設為一幀,放置在第一幀。
在電影腳本中輸入如下初始化腳本:
global _color, _text
on startmovie
_text = "the color is: "
_color = rgb(0,0,0)
member("textbar").alignment = #center
member("textbar").text = _text
end
下面分析一下取色方法。要求當鼠標點擊在餅圖上時必須實時檢測出顏色值。因為影片以30幀每秒的速率播放,也就是說在一幀上每秒可以檢測30次鼠標事件并作出相應判斷,這對于鼠標事件來說時間已經足夠短了。
雙擊第一幀的腳本通道,在幀腳本中輸入如下腳本:
on exitframe me
check --檢測鼠標事件并在當前幀循環
go the frame
end
on check
global _color, _text
repeat while the mousedown --檢測鼠標按鍵
if the mousemember <> member("circle") then --如果鼠標沒有
--選中調色餅
exit --則退出
end if
--得到相對于調色餅的鼠標點的位置,并取該點顏色值
--注意計算該點時,是用鼠標位置減去調色餅的左上角坐標,
--而不是調色餅的位置loc
_loc = the mouseloc - point(sprite(1).rect[1],sprite(1).rect[2])
_color = member("circle").image.getpixel(_loc)
--如果取色為黑色或白色,則退出,這樣可以保證只有鼠標點中餅圖時才
--檢測到顏色
if (_color = rgb(0,0,0)) or (_color = rgb(255,255,255)) then
exit
end if
--在文本框中顯示顏色值,并改變文本框背景色為選取色
member("textbar").text = _text &return& _color
sprite(2).bgcolor = _color
updatestage
end repeat
end
現在可以編譯運行了。效果如下圖所示。這個例子沒有什么特別的技巧,只需要了解事件觸發機制和前面介紹的影片運作方式,很快就可以做出來。
新聞熱點
疑難解答