快速业务通道

Flash AS教程:对拖到指定区域小球计数

作者 凌众技术 来源 网页制作 浏览 发布时间 2012-03-09

  今天帮网友做一个一个简单的效果,但用到了比较多的手段,所以记录一下:

  要求将小球拖到指定区域,然后计数,如图:

  时间轴:

  function mc_press(_mc:MovieClip) {

  _mc.addEventListener(flash.events.MouseEvent.MOUSE_DOWN,d_f);

  }

  function d_f(e:MouseEvent) {

  var str:String=e.target.name.slice(0,e.target.name.length-3);

  var myclass=getDefinitionByName(str);

  var my_mc=new myclass();

  my_mc.startDrag(true);

  addChild(my_mc);

  my_mc.addEventListener(flash.events.MouseEvent.MOUSE_DOWN,mc_d);

  my_mc.addEventListener(flash.events.MouseEvent.MOUSE_UP,mc_u);

  }

  function mc_d(e:MouseEvent) {

  e.target.startDrag();

  if (fang_mc.hitTestPoint(e.target.x,e.target.y)) {

  e.target.isHitTest=true;

  } else {

  e.target.isHitTest=false;

  }

  }

  function mc_u(e:MouseEvent) {

  e.target.stopDrag();

  var class_str:String=getQualifiedClassName (e.target);

  var class_name=getDefinitionByName(class_str);

  if (!e.target.isHitTest) {

  if (fang_mc.hitTestPoint(e.target.x,e.target.y)) {

  class_name.num++;

  }

  } else {

  if (!fang_mc.hitTestPoint(e.target.x,e.target.y)) {

  class_name.num--;

  }

  }

  back_txt.text=String(back.num);

  blue_txt.text=String(blue.num);

  red_txt.text=String(red.num);

  }

  mc_press(back_mc);

  mc_press(blue_mc);

  mc_press(red_mc);

  类:

  package {

  import flash.display.MovieClip;

  public class back extends MovieClip {

  public static var num:int=0;

  public var isHitTest:Boolean=false;

  public function back() {

  }

  }

  }

  package {

  import flash.display.MovieClip;

  public class blue extends MovieClip {

  public static var num:int=0;

  public var isHitTest:Boolean=false;

  public function blue() {

  }

  }

  }

  package {

  import flash.display.MovieClip;

  public class red extends MovieClip {

  public static var num:int=0;

  public var isHitTest:Boolean=false;

  publi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号