全国统一咨询电话:400-888-0729 
 校区选择:徐家汇校区 普陀校区 虹口校区 人民广场校区 卢湾校区  浦东校区 杨浦校区 松江校区 浦东金桥 苏州校区
课程 | 学校 | 资料 | 新闻
       
Flash CS4打造鼠标触发的焰火飘落互动特效
查看相关:新闻   资料   课程   英豪教育
    
二、 创建元件类 添加控制代码

 

  (1)采用前面的方法分别为Magic_mc和Star_mc影片剪辑添加元件类,如图10所示。

  

  图10 添加元件类

  (2)新建一个ActionScript文件,将其命名为Main,然后将其保存在该实例的文件夹中,再输入控制代码。

  /**
  * 该类为主程序类
  * @author lbynet
  * @version 0.1
  */
  package {
  import flash.display.Sprite;
  import flash.display.MovieClip;
  import flash.events.Event;
  import flash.events.MouseEvent;
  import flash.ui.Mouse;
  public class Main extends Sprite {
  private var star:MovieClip;
  public function Main() {
  Mouse.hide();
  this.star = new Star_mc();
  addChild(star);
  stage.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler);
  }
  private function moveHandler(e:MouseEvent):void {
  this.star.x = stage.mouseX;
  this.star.y = stage.mouseY;
  var _mc = new Magic_mc();
  _mc.x = stage.mouseX;
  _mc.y = stage.mouseY;
  addChild(_mc);
  _mc.addEventListener(Event.ENTER_FRAME, RemoveDrop);
  }
  private function RemoveDrop(event:Event) {
  var _mc:MovieClip = event.target as MovieClip;
  if (_mc.scaleX <= 0) {
  _mc.removeEventListener(Event.ENTER_FRAME, RemoveDrop);
  removeChild(_mc);
  }
  //trace(this.numChildren)
  }
  }
  }

  技巧与提示:该文档类基本包含了“星星洒落”实例中Main文档类的知识,此外第18行代码为Mouse类的hide()方法,用于隐藏鼠标指针,在使用该方法前必须先导入Mouse类(如第11行代码)。

  该文档类定义了一个私有属性Star,第19行代码是为该属性赋值,值为所创建的元件类(Star_mc),并将其添加到显示列表中(如第20行代码),而24和25行代码是为该元件类应用鼠标跟随效果。

  (3)同样新建一个ActionScript文件,然后输入控制代码。

  /**
  * 该类为扩展元件类
  * @author lbynet
  * @version 0.1
  */
  package {
  import flash.display.MovieClip;
  import flash.events.Event;
  public class Magic_mc extends MovieClip {
  private var dis:Number;
  public function Magic_mc() {
  init();
  }
  private function init() {
  var Random = 1 + Math.round(Math.random()*4);
  this.gotoAndStop(Random);
  this.scaleX = this.scaleY = Math.random();
  //产生随机数-5到5之间的随机数
  dis = Math.round((Math.random()-.5)*10);
  this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
  }
  private function enterFrameHandler(event:Event) {
  this.y += 5;
  this.x += dis;
  this.scaleX -=.005;
  this.scaleY -=.005;
  }
  }
  }
  技巧与提示:

  第19和20行代码是为该元件类创建一个1~5之间的随机数,使该影片剪辑元件类在实例化(被创建时)时将播放头移到并停止在指定的时间帧上。

  Math.random()方法产生0~1之间的随机数,Math.random()*4方法返回到0~4之间的随机数,而Math.round()方法用于向上或向下舍入为最接近的整数并返回该值,所以1+Math.round(Math.random()*4)方法取得1~5之间的随机整数值;gotoAndStop()语句使影片剪辑的播放头移到并停止在指定的时间帧上。

  通过使用Math.random()-0.5 方法来生成-0.5~0.5之间的随机数,然后乘以10得到-5~5之间的随机数,再使用Math.round方法进行舍入并取得整数,这样当鼠标指针由下往上移动时,就会产生星火飘落的效果,如图11所示。

  

  图11 星火飘落效果

  第30行代码是为火花加入y轴坐标方向上的一个固定加速度,而第31行代码则是火花在x轴坐标方向上的一个-5~5之间的随机加速度值。

  (4)按Ctrl+Enter组合键发布程序。

  本文出自《Flash CS4动画设计与制作208例》(转载请保留出处)

1第2页
资料整理:  来源:  2010-04-21  浏览:
加入收藏】【打印】【关闭
 安博教育集团全国分校:
安博(昆山)服务外包产业园
|安博(大连)软件与服务外包实训基地|安博北京亚威科技|安博天津长城学校|安博大连希望学校|安博长沙牛耳学校|安博苏州亿思学校|安博北京中程在线|

搜索中心 --资讯中心 -- BBS论坛 --客服中心--商务合作--客户反馈信息--网站地图

计算机培训|平面设计|网页设计|室内设计|游戏艺术|网络安全|影视动画|网络工程师|思科|MCSE|模具设计|中高级口译|英语新概念|商务英语|雅思|TOEFL|英语口语|四六级|公共英语 日语|办公文秘|会计从业资格|会计实务操作|会计职称|自考|网络学院|公务员|CCEP|油画&国画|美术中高考|大学实训|企业培训|网络营销|SEO|电子商务

 
 Copyright 2008-2010 eduschool.com.cn© All Rights Reserved.
安博教育集团 | 上海英豪教育进修学院 版权所有