<pre id=\"best-answer-content\" class=\"reply-text mb10\">package {
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.Sprite;
public class Move extends Sprite {
var key:Object=new Object();
private var speed:int=20;
public function Move(){
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP,keyUp);
stage.addEventListener(Event.ENTER_FRAME,PMove);
}
private function keyDown(event:KeyboardEvent):void {
key[event.keyCode]=true;
//当按下制订键时,定义相应的key对象为真
}
private function keyUp(event:KeyboardEvent):void {
delete key[event.keyCode];
//案件释放则将相应键的key对象删除
}
private function PMove(event:Event):void {
const Key_LEFT:uint=65;
const Key_RIGHT:uint=66;
//定义左右方向键的键控代码
if (key[Key_LEFT]) {
//如果按下左方向键
P.x-=speed;
//角色沿x轴方向向左移动
}
if (key[Key_RIGHT]) {
//如果按下右方向键
P.x =speed;
//角色沿x轴向右移动
}
}
}
}
/**********************************************************************************************
如楼上所说,你没有侦听事件,这里我把侦听事件加在constructor里面了
这个类是你自己写的吗?奇怪的是,封装得挺好的一个类,这样一来就只适用于移动对象一开始就在舞台上的情形
为什么做成适用舞台的类,而不做成适用元件的类呢?那样重复利用率更高
*/
/****************************************************
以下我修改了一下,使它成为适用元件的类
package {
import flash.events.*;
import flash.display.*;
public class Move extends MovieClip {
var key:Object=new Object();
private var speed:int=20;
private var sta:Stage;
public function Move(s:Stage){
sta = s;
sta.addEventListener(KeyboardEvent.KEY_DOWN,keyDown);
sta.addEventListener(KeyboardEvent.KEY_UP,keyUp);
sta.addEventListener(Event.ENTER_FRAME,PMove);
}
private function keyDown(event:KeyboardEvent):void {
key[event.keyCode]=true;
//当按下制订键时,定义相应的key对象为真
}
private function keyUp(event:KeyboardEvent):void {
delete key[event.keyCode];
//案件释放则将相应键的key对象删除
}
private function PMove(event:Event):void {
const Key_LEFT:uint=65;
const Key_RIGHT:uint=66;
//定义左右方向键的键控代码
if (key[Key_LEFT]) {
//如果按下左方向键
this.x-=speed;
//角色沿x轴方向向左移动
}
if (key[Key_RIGHT]) {
//如果按下右方向键
this.x =speed;
//角色沿x轴向右移动
}
}
}
}
*********************************
使用这个类的时候,在主舞台写
var test:Move = new Move(stage);
addChild(test);
********************************
这样的结构使你主舞台的代码更简洁,便于拓展程序内容
*/
<h4 class=\"ask\">追问
<pre class=\"replyask-text\" id=\"content-3633297\">敢问大侠QQ多少?我想请教你..这里太不方便了.还有很多问题.感激不尽
|