教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 多媒体类教程 · Director教程 · Director基础教程

DirectorMX的学习过程提高篇一(图形按钮制作)

学院最新推荐文章
教程推荐
[图文]DirectorMX的学习过程提高篇一(图形按钮制作)』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2006-11-21 

   现在需要判断激活的画图按钮。设置一个全局变量CurrectTool保存当前激活的按钮,可能取值为#none(没有按钮被激活),#chalk(粉笔按钮被激活),#rectangle(矩形按钮被激活),#circle(画圆按钮被激活),#pencil(铅笔按钮被激活)。在电影脚本中写自定义事件如下:

   on checkInactive

   global currenttool, mouseclickcounter

   if currenttool <> #none then

   case currenttool of

   #chalk: sprite(3).member = member("chalkUp")

   #rectangle: sprite(4).member = member("rectUp")

   #circle: sprite(5).member = member("circleup")

   #pencil: sprite(6).member = member("lineup")

   end case

   end if

   mouseclickcounter = 0

end

   然后在每个按钮的MouseDown事件中检测以上自定义事件。以“ChalkUp”按钮为例,写脚本如下:

on mouseDown me

   global currenttool, mouseclickcounter

   mouseclickcounter = 0

   checkInactive

   sprite(me.spriteNum).member = member("chalkdown")

   currenttool = #chalk

end

   选择了画图工具,现在开始画图。以矩形画图为例,写自定义动作脚本如下:

on drawwithrectangle

   global mouseclickcounter, drawcolor

   global beginpointX, beginpointY

   --注意到全局变量MouseClickCounter,由于矩形由左上角和右下角坐标决定,

   --因而必须鼠标连击两次才能画出一个矩形。

   --首先得到左上角坐标,再得到右下角坐标

   case mouseclickcounter of

   0: beginpointX = the mouseH - 49

   beginpointY = the mouseV - 66

   1: endpointX = the mouseH - 49

   endpointY = the mouseV - 66

   member(2).image.draw(beginpointX, beginpointY, endpointX, endpointY ,[#shapetype: #rect,#linesize: 2,#color: drawcolor])

   end case

end

   因为在黑板上作图,所以在黑板的MouseDown事件中写如下脚本:

on mouseDown me

   global currenttool, mouseclickcounter

   --如果鼠标已经连击了两次,就将全局变量MouseClickCounter清零

   if mouseclickcounter = 2 then

   mouseclickcounter = 0

   end if

--根据按钮的激活状态来决定画什么图形

   case currenttool of

   #rectangle: drawwithrectangle

   #circle: drawwithcircle

   #pencil : drawwithpencil

   end case

   --鼠标点击次数加一

   mouseclickcounter = mouseclickcounter + 1

end

  

   本例的画图思路基本就是这样,至于其他细节问题比如画图时光标的变化、画图的连续性,以及其他扩充的画图功能,请有兴趣的朋友自己实现。如果你根据系统提供的实例能独立实现画图功能,那么你对事件触发机制和Lingo脚本的掌握已经有很好的基础了。

   图六:画图的实现

   通常在编写脚本时会遇到很多意想不到的问题。比如在用PuppetSprite将精灵木偶化以后,如果不及时取消木偶化,在其他地方就会出现出乎预料的结果;在设置时间等待时,如果用delay()或自定义Wait函数,那么在等待时可能就不能同步播放声音了,解决的办法就是自定义Wait函数,在等待时判断声音通道是否空闲,如果空闲则继续播放声音。总之,熟能生巧,多思考多实践,你会成为高手的

】【关闭窗口
·上页:
·下页:
相关文章
     多媒体类教程 - Director基础教程
普通教程Director设计动画时的流程以及注
普通教程DirectorMX的界面说明
普通教程DirectorMX的学习过程提高篇一(
普通教程DirectorMX的学习过程提高篇一(
普通教程DirectorMX的学习过程提高篇一
普通教程DirectorMX的工具面板使用学习教
普通教程Director 8.0学习过程之入门到精
普通教程Director 8.0学习过程之入门到精
普通教程DirectorMX界面编辑器学习
普通教程Director 8.0学习过程之入门到精
普通教程Director 8.0学习过程之入门到精
普通教程Director 里几个save命令地区别
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光