用Flash制作一只慧眼

Author: 吕睿 Date: 2000年 第27期

  思路如下:用圆形屏蔽(mask)一中心有黑点的正方形就可以实现眼睛效果,眼球转动只要控制好正方形的移动就行了。眼球的坐标可通过球原来的坐标进行加减光标坐标和眼球坐标的差值除以一个特定的值来定位。
  下面就让我们一步一步来完成它。
  新建一长为400,宽为550的场景,背景色为白色。用矩形工具画一正方形,用渐变色填充,并在中间画一黑点作为眼球。选中刚才画的所有东西,转为MC,并取instance name为e。选中e,在Window菜单下选择Inspectors下的Object。调整x,y,w,h,分别为200,125,150,150。新建一MC,内容为空的,把它从Library中拖入场景并取instance name为d。在第二帧处插入关键帧。
  在第一关键帧中写入如下内容:
  Start Drag (″d″, lockcenter)
  *拖动MC“d”以使d的坐标就是mouse的坐标
      Set Variable:“ex”= GetProperty ( ″e″, _x )
  *设变量ex为当前MC“e”的x坐标
      Set Variable: ″ey″ = GetProperty ( ″e″, _y )
  *设变量ey为当前MC“e”的y坐标
  在第二关键帧中写入如下内容:
      Set Variable: ″dx″ = GetProperty ( ″d″, _x )
  *设变量dx为当前MC“d”的x坐标(就是mouse的x坐标)
      Set Variable: "dy" = GetProperty ( "d", _y )
  *设变量dy为当前MC“d”的y坐标
      If (dx<=275)
        Set Property (″e″, X Position) = 275-Int ( (ex-dx)/10 )
      End If
  *当MC“d”的x坐标小于等于275(550除2)时,MC“e”的x坐标为275减去,变量ex减变量dx再除以10的取整值。也就是说光标的x坐标为50,眼球的x坐标应为253(此时眼球偏左)。以下请参照理解。
      If (dx>275)
        Set Property (″e″, X Position) = 275+Int ( (dx-ex)/10 )
      End If
      If (dy<=200)
        Set Property (″e″, Y Position) = 200-Int ( (ey-dy)/10 )
      End If
      If (dy>200)
        Set Property (″e″, Y Position) = 200+Int ( (dy-ey)/10 )
  End If
  程序注:“*”后面为Action语句的注释。
  在原来的那层上新建一层,在新建的层中画一个大小适当的实心圆来遮罩。
  好了,大功告成,按“Ctrl+Enter”看看效果(如^27040202a^),是不是很棒啊?如果大家还有什么问题请发E-mail给我:qsa@citiz.net。