返回首页

 

Director 8从入门到精通(四)
3月21日
  下面介绍一个用来检测饼图颜色的简单例子。

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

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

相关文章
  • 在Director中应用Flash——从Director到Flash
  • 在Director中应用Flash——从Flash到Director(图)
  • 在Director中应用Flash——基础篇
  • Director8新手上路——可视化的交互创作
  • Director8新手上路——深入了解舞台、演员、精灵与分镜(二)
  • Director8新手上路——深入了解舞台、演员、精灵与分镜(一)
  • Director8新手上路——绘图工具(二)(图)
  • Director8新手上路——绘图工具(一)(图)
  • Director8新手上路——快速入门(图)
  • Director8新手上路——界面浏览(图)
  • Director8新手上路——新增功能介绍
  • Director 8从入门到精通(九)(图)