flash鼠标拖拽与旋转MC教程

时间:2013-07-17 11:15:09  作者:啤酒  阅读:16777215

在网上看到某个游戏既要拖拽mc又要旋转mc,拖拽用鼠标事件实现,而旋转需要用shift+鼠标click事件。总觉得太麻烦了。故而希望自己能找到一种只用鼠标就能同时实现拖拽与旋转功能的方法。

结果发现MOUSE_DOWN+MOUSE_UP竟然相当于一次CLICK事件。即每次释放鼠标左键,停止拖拽时,mc会旋转一次,而这个显然不是预期的效果。

于是,开始明白了,那个程序员为什么要添加shift键的侦听了。

可是,不用shift键就不能实现这种功能吗?我开始考虑如何区分MOUSE_DOWN+MOUSE_UP与CLICK.。

方法一:设置时间间隔。时间不太好把握,pass掉。

方法二:用鼠标的相对位置。倘若mc未移动则视为click事件。正解!

  package{

   import flash.display .*;

   import flash.geom .Point;

   import flash.events.*;

   public class main extends Sprite{

    private var mc:MC;

    private var clickOffset:Point;

    private var mouseLoc:Point;

    public function main(){

   mc=new MC();

   addChild(mc);

   mc.x=200;

   mc.y=200;

   mc.addEventListener(MouseEvent.CLICK ,rot);

   mc.addEventListener(MouseEvent.MOUSE_DOWN,startdrag);

   mc.addEventListener(Event.ENTER_FRAME. ,drag);

   stage.addEventListener(MouseEvent.MOUSE_UP,stopdrag);

    }

    private function startdrag(e:MouseEvent ){

   mouseLoc=new Point(e.stageX,e.stageY);

   clickOffset=new Point(e.stageX-mc.x,e.stageY-mc.y);

    }

    private function drag(e:Event){

   if(clickOffset==null) return;

   mc.x=mouseX-clickOffset.x;

   mc.y=mouseY-clickOffset.y;

    }

    private function stopdrag(e:MouseEvent ){

   clickOffset=null;

    }

    private function rot(e:MouseEvent){

   if(!mouseLoc.equals(new Point(e.stageX,e.stageY)))return;

    mc.rotation+=30;


    }

   }

  }

BannerZest Pro Mac版 V4.0 电脑
BannerZest Pro Mac版 V4.0
大小:0MB  时间:01.12  赞:28

相关文章

  • Flash教你制作可爱的小青蛙闹钟
    Flash教你制作可爱的小青蛙闹钟

    这个Flash实例制作了一个可爱的“小青蛙时钟”动画,用到了Flash的基本绘图工具如椭圆、矩形、直线和任意变形等,操作简洁易懂,适合练习。

    16777215
  • Flash教你如何制作吹泡泡动画特效
    Flash教你如何制作吹泡泡动画特效

    这个Flash实例制作了一个有趣的“小丑吹泡泡”动画,主要运用了椭圆、直线工具,以及任意变形和渐变填充等,操作简洁易懂,适合练习。先看下效果吧:

    16777215
  • Flash教你如何制作蝙蝠在月夜里飞翔
    Flash教你如何制作蝙蝠在月夜里飞翔

    1、这个小教程用Flash制作了一个蝙蝠在月夜里飞翔的动画,用到了Flash的基本绘图工具以及渐变填充等,操作简洁,适合练习。

    16777215
  • Flash教你如何制作一幅诗意的水墨卷轴展开的动画
    Flash教你如何制作一幅诗意的水墨卷轴展开的动画

    1、北京奥运会开幕式上那充满诗意的卷轴,以及它所呈现给我们的一幅幅无法言喻的美妙画面,大家一定还记忆犹新吧!今天我们就用Flash来制作一幅诗意的水墨卷轴展开的动画,主要用到矩形工具和渐变填充工具,操作简单易懂,适合练习。

    16777215
  • flash制作小猪教程
    flash制作小猪教程

    本教程是使用Flash制作可爱有趣的亲嘴猪动画,讲述如何用简单的绘图工具画出可爱俏皮的小猪以及制作成亲嘴动画。这个Flash实例简单易懂,这个Flash实例制作了两只可爱的小猪亲嘴的动画,用到了Flash的基本绘图工具如椭圆、矩形、直线和任意变形等,操作简单易懂,适合练习。

    16777215
  • flash举笔题诗动画水调歌头制作教程
    flash举笔题诗动画水调歌头制作教程

    1、本教程主要使用了椭圆、矩形和文字工具以及渐变填充,操作实用,适合练习。

    16777215
  • flash动画控制SWF大小的技巧介绍
    flash动画控制SWF大小的技巧介绍

    flash一般做出来都是要拿到网络上去传播的,所以控制他的大小非常重要,试想如果你一个文件做出来几M甚至几十M,那会有几个人有耐心去等他下载完,下面我来说一些造成文件增大原因与解决的方法,因为我们做网络广告的时候,一般一个广告不让超过20K,所以对于控制文件大小比较有经验。

    16777215
  • Flash几张图片首尾连接循环滚动实现方法
    Flash几张图片首尾连接循环滚动实现方法

    要让几张图片循环滚动,最简的原理就是把连续图片再复制一份接到尾部,待第一张图片滚完之后被复制的接着滚动。原理图示如图7-5所示。

    16777215
  • Flash方块动画特效制作教程
    Flash方块动画特效制作教程

    效果如下:

    16777215
  • Flash教你绘制楼梯动画场景
    Flash教你绘制楼梯动画场景

    先看看最终效果:

    16777215