收藏本站 | 广告设计 | 设计素材 | 教程 | ppt素材 | 中职 | 范文 | 常识 | 学习方法 | 作文  
订阅
首页
高考试题中考试卷学习方法范文写作作文大全公务员考试英语考试中职教育生活常识评语大全
热门: 广告设计 设计素材 教程 ppt素材 自考试卷 计算机等级考试 财会类考试 建筑工程考试 医药类考试 考研 电脑学习 驾照考试 语录名言好词 周公解梦 偏方
当前位置:一路求学网文章频道平面设计教程Flash教程AS教程:鼠标拖拽与旋转MC

AS教程:鼠标拖拽与旋转MC

一路求学网 http://www.16qiuxue.com  阅览次数: 572次 11-23 13:10:57 

标签:flash教程制作,flash动画教程,flash教程下载,http://www.16qiuxue.com AS教程:鼠标拖拽与旋转MC,

Webjx核心提示:不用shift键就不能实现这种功能吗?我开始考虑如何区分MOUSE_DOWN+MOUSE_UP与CLICK.

在网上看到某个游戏既要拖拽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;
  
  }
 }
}

,AS教程:鼠标拖拽与旋转MC
《AS教程:鼠标拖拽与旋转MC》相关文章

网友评论>>

联系我们 | 网站地图 | 广告设计 | 设计素材 | 教程大全 | ppt素材 | 中职教育 | 范文大全 | 常识大全 | 学习方法 | 作文大全
一路求学网 版权所有. Copyright © - http://www.16qiuxue.com. All rights reserved.
学习方法_小学英语作文_驾照考试试题_幼儿园大班评语
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18