当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > Flash AS教程:对拖到指定区域小球计数

ActionScript
Flash as与影片剪辑的调用
Flash AS2教程:缓冲运动
flash as2的缓动类
FLASH AS教程:ActionScript3简介
Flash AS3教程:编程基础
ActionScript和网页JavaScript互相调用
Flash ActinScript 3.0基础知识
ActionScript 3.0的流程控制语法
ActinScript3.0开发基础知识:可重用代码
Flash自定义函数实例
ActoinScript教程:小数坐标处理
AS教程:鼠标拖拽与旋转MC
Flash AS3基础教程:掌握鼠标事件应用
Flash AS3教程:快速制作烟雾动画
Flash AS代码书写约定和书写习惯
学习Flex:常见的Flex代码
Flex教程:ScriptLimits标签
Flash AS教程:propertydata问题解决
Flash AS3单列模式实现方式
as3中通过ByteArray进行对象的深度拷贝

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-01   浏览: 129 ::
收藏到网摘: n/a

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

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

  时间轴:

  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;

  public function red() {

  }

  }

  }

  类的功能很简单,主要用于计数和判断!

  桌面.rar:

桌面.rar

 

  //改进:定义一个父亲给三个类:

  package {

  import flash.display.MovieClip;

  public class color extends MovieClip {

  public var isHitTest:Boolean=false;

  public function color() {

  }

  }

  }

  package {

  import flash.display.MovieClip;

  public class back extends color {

  public static var num:int=0;

  public function back() {

  }

  }

  }

  package {

  import flash.display.MovieClip;

  public class blue extends color {

  public static var num:int=0;

  public function blue() {

  }

  }

  }

  package {

  import flash.display.MovieClip;

  public class red extends color {

  public static var num:int=0;

  public function red() {

  super();

  }

  }

  }