首页 > 网站 > 媒体动画 > 正文

Director基础教程:Director 8.0学习过程之入门到精通四

2024-09-08 19:27:11
字体:
来源:转载
供稿:网友

   下面介绍一个用来检测饼图颜色的简单例子。

   首先在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

   现在可以编译运行了。效果如下图所示。这个例子没有什么特别的技巧,只需要了解事件触发机制和前面介绍的影片运作方式,很快就可以做出来。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表