FLASH特殊效果之一:火花按钮


DIV>

编辑后按钮B-makespark的Timeline区
B-makespark的Hit帧的实心圆

  现在,新建一个MovieClip,命名为“M-spark”。这个MC只做一帧。在唯一的一帧的中心,用渐变色(Gradient Color)[金黄(Alpha=75)-$#@62;黑(Alpha=0),辐射渐变]画上一个实心圆。如下图。

  下面就得做编程控制了。新建一个MC,命名为“M-controller”。这个MC的所有帧都是空的关键帧。在它的第一帧的Action中写上如右的Action Script代码。然后复制第一帧到第二帧,两帧的内容完全相同,目的是形成一个回路,反复执行这段程序。现在我们来分析一下这段程序。从第一句到第六句都是设定火花在一时刻的位置的;第七第八两句是设定火花在一时刻的大小(缩放比例);第九句是设定火花在一时刻的透明度(Alpha值),最后的If判断句是判断当火花的透明度为0(即不可见)时移 弦徊愕氖堤錗ovieClip(为什么要上一层,下面会提到,这是由实体的结构决定的)。

Set Variable: "zpos" = zpos+../:zspeed
Set Variable: "scale" = (zpos*4+100)/100
Set Variable: "factor" = (zpos/10+100)/100
Set Property ("../spark", X Position) = (../spark:_x+../:xspeed)*factor
Set Variable: "../:yspeed" = ../:yspeed+/:gravity
Set Property ("../spark", Y Position) = (../spark:_y+../:yspeed)*factor
Set Property ("../spark", X Scale) = scale*100
Set Property ("../spark", Y Scale) = scale*100
Set Property ("../spark", Alpha) = ../spark:_alpha-../:fade
If (../spark:_alpha$#@60;0)
 Remove Movie Clip ("../")
End If


  接下来,就要把程序和火花组合起来了。新建一个名为“M-flyspark”的MovieClip。按下Ctrl+L打开符号库(Library),把刚才做的M-spark符号和M-controller符号拖到这个新的M-flyspark的Layer1层的第一帧来,并把M-spark至于符号的中心(十字处)。然后选中M-spark符号,在菜单中选Modify-$#@62;Instance,定义这个符号的实体名为“spark”。好了这样就把火花和程序组合好了。(M-flyspark符号见下)

  现在改回到场景中把所有的MC组合起来了。由于我们要让鼠标左键无论在何处被按下时都有火花的效果出现,所以我们要把按钮做成MC,然后然鼠标拖动这个按钮MC。在场景中选中B-makespark,然后按下F8键,把它创建成一个名为“m-draggie”的MC。定义这个MC的实体名为“draggie”。接着打开符号库,把M-flyspark符号拖到场景中来,定义实体名为“spark”。然后把第一帧的Action按右面的程序编写。最后,编辑m-draggie符号,双击B-makespark符号,把按钮的Action写成左面的样子。在按钮B-makespark的Action中,当按钮按下后,就做一循环,复制出10个小火花,然后设各自的初始值(用Random函数),最后结束循环。

  好了,这个特殊效果到这里就做完了,试一下,不错吧。
Set Variable: "gravity" = .98
Set Property ("/spark", Visibility) = false
Start Drag ("/draggie", lockcenter)
场景中第一帧的Action
On (Release)
Set Variable: "temp" = 1
Loop While (temp$#@60;=10)
 Set Variable: "current" = random(1000)
 Duplicate Movie Clip ("/spark", "spark"¤t, current)
 Set Property ("/spark"¤t, X Position) = _x
 Set Property ("/spark"¤t, Y Position) = _y
 Set Variable: "/spark"¤t&":xspeed" = random(6)-2
 Set Variable:"/spark"¤t&":yspeed" = random(8)-1
 Set Variable: "/spark"¤t&":zspeed" = random(10)-5
 Set Variable: "/spark"¤t&":fade" = random(5)+3
 Set Variable: "temp" = temp+1
End Loop
End On
符号m-draggie中按钮B-makespark的Action