创建按键侦听

//创建一空剪辑ship_mc画飞船
this.createEmptyMovieClip("ship_mc", this.getNextHighestDepth());
function drawShip(flag:Boolean):Void {
 with (ship_mc) {
  clear();
  lineStyle(1, 0xffffff);
  moveTo(10, 0);
  lineTo(-10, -10);
  lineTo(-5, 0);
  lineTo(-10, 10);
  lineTo(10, 0);
  //是否显示飞船加速时的尾气
  if (flag) {
   moveTo(-7.5, -5);
   lineTo(-15, 0);
   lineTo(-7.5, 5);
  }
 }
}
//初始状态不显示尾气
drawShip(false);

//初始化飞船位置
ship_mc._x = Stage.width/2;
ship_mc._y = Stage.height/2;
//初始化旋转的角速度,加速时加速度所对应的力,x、y方向的初始速度
var vr:Number = 0;
var force:Number = 0;
var vx:Number = 0;
var vy:Number = 0;

//添加侦听键盘,左右上方向的按键
obj = new Object();
obj.onKeyDown = function(obj:Object) {
 if (Key.isDown(Key.LEFT)) {
  //左方向键,顺时针旋转
  vr += 5;
 } else if (Key.isDown(Key.RIGHT)) {
  //右方向键,逆时针旋转
  vr -= 5;
 } else if (Key.isDown(Key.UP)) {
  //向上方向,施加一个力force,显示尾气
  force = 0.2;
  drawShip(true);
 }
};
obj.onKeyUp = function(obj:Object) {
 //释放按键后操作
 vr = 0;
 force = 0;
 drawShip(false);
};
Key.addListener(obj);

//执行函数
this.onEnterFrame = function() {
 //控制飞船的旋转,如果长时间按住方向键,飞船将旋转越来越快;
 ship_mc._rotation += vr;
 var angle:Number = ship_mc._rotation*Math.PI/180;
 //跟据飞船的方向将力所产生的加速度分解为x,y方向
 var ax:Number = force*Math.cos(angle);
 var ay:Number = force*Math.sin(angle);
 //移动飞船
 vx += ax;
 vy += ay;
 ship_mc._x += vx;
 ship_mc._y += vy;
};

时间: 2024-10-06 03:56:17

创建按键侦听的相关文章

用ISA 2006标准版发布Exchange 2010的OWA:创建Web侦听器

通过上面的步骤,我们完成了Exchange Server的配置工作,接下来需要配置ISA服务器,将内网的Exchange OWA发布给互联网上的用户访问. ISA是处于内网和外网之间的屏障,外网用户访问内网的Exchange时实际上访问的是ISA,所以要在ISA上导入Exchange的证书,ISA才能代表OWA站点向用户出具有效的证书.另外,在本实验拓扑中,ISA服务器处于工作组中,并不在域中,所以来自企业CA颁发的Exchange证书是不会自动被ISA信任的.解决方法就是将CA证书导入到ISA

netbeans-java键盘按键侦听事件响应

问题描述 java键盘按键侦听事件响应 今天的第二个问题,代码如下 addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { formKeyTyped(evt); } }); private void formKeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code he

js跨浏览器的事件侦听器和事件对象的使用方法_javascript技巧

本文特意为跨浏览器实现添加事件侦听器和跨浏览器事件对象的使用方法做了下总结,并把这些方法打包,欢迎大家学习. 打包的一个EventUtil对象 var EventUtil = { // 添加侦听事件 addEventListener:function (element, type, handler) { // IE9+.Firefox.Safari.chrome和Opera if(element.addEventListener) { element.addEventListener(type,

Android Listener侦听的多种写法

Android中,View的Listener方法,在是否使用匿名类匿名对象时,有各种不 同的写法. OnClickListener和其他Listener方法一样,都是View类的接 口,重载实现后就能使用,其接口定义如下: public interface OnClickListener { /** * Called when a view has been clicked. * * @param v The view that was clicked. */ void onClick(View

Java理论与实践:做个好的(事件)侦听器

观察者模式在 Swing 开发中很常见,在 GUI 应用程序以外的场景中,它对 于消除组件的耦合性也非常有用.但是,仍然存在一些侦听器登记和调用方面的 常见缺陷.在 Java 理论与实践 的这一期中,Java 专家 Brian Goetz 就如何 做一个好的侦听器,以及如何对您的侦听器也友好,提供了一些感觉很好的建议 .请在相应的 讨论论坛 上与作者和其他读者分享您对这篇文章的想法.(您也 可以单击本文顶部或底部的 讨论 访问论坛.) Swing 框架以事件侦听器的形式广泛利用了观察者模式(也称

《WCF技术内幕》38:第2部分_第7章_通道管理器:通道侦听器

接收者:通道侦听器 和它们的名字暗示的一样,通道侦听器就是为了创建通道并侦听传入的消息 .这个模型借鉴了伯克利Socket编程API.在WCF里,这个模型可以在 Windows Socket(Winsock) API里看到.在.NET Framework编程里,这个模型存在于 System.Net.Sockets命名空间里.在这个模型里,TcpListener或Socket会绑定 一个地址,然后被动侦听连接传入的消息.当连接建立以后(例如,客户端链接 到侦听器),会有一个以Accept开头的方法

Java技术体验:HTTP多线程下载,端口侦听和自启动服务

一个网友正好需要这个东西,我就把几个技术整合到了一起.包括三个部分,实现时也是逐个做到的 多线程的文件下载,HTTP协议 把这个功能做成一个HTTP的服务,侦听在某个端口上,方便非Java的系统使用 把这个功能封装为一个Windows服务,在机器启动时可以自动启动 我们逐个看程序. 一.多线程下载 这个主要使用了HTTP协议里面的一个Range参数,他设置了你读取数据的其实位置和终止位置. 经常使用flashget的用户在查看连接的详细信息时,应该经常看到这个东西.比如 Range:bytes=

C#关于侦听本地端口:关闭被侦听的端口后界面卡

问题描述 由于项目的特殊需要创建了两个TCP通道,一个用于连接服务器发送数据,一个用于侦听本机端口接收数据,在接收完数据后关闭本机被侦听的端口,窗体突然间很卡,需要很长时间才可以响应下一个窗体,请问该怎么解决?代码如下侦听本地端口接收数据:delegatevoidaa();TcpListenerTcpListener=null;TcpClientTcpClient=null;NetworkStreamMyStream=null;///<summary>///监听9806端口///</su

Android Listener侦听的N种写法

Android中,View的Listener方法,在是否使用匿名类匿名对象时,有各种不同的写法. OnClickListener和其他Listener方法一样,都是View类的接口,重载实现后就能使用,其接口定义如下: [java] view plaincopyprint? public interface OnClickListener {       /**       * Called when a view has been clicked.       *       * @param