Flash AS2.0中复杂按键操作的捕获
在我的flash游戏《牧场物语》中的按键操作是比较复杂的,我们用的语言是AS2.0,它的捕获按键并不像我们想象的那样。1当某个键按下不松开的话它会不断的触发该按键事件,但事实我们只想让它执行一次我们想要执行的代码;2当我们想要使用组合键,如C+X,而且是必须C在X前先按下才会触发我们的代码,这个也不是两行代码就能解决的;3对于有些按键,如方向键,我们当然是希望它在按下后不断的执行一些代码,但并不想它跑的那样快,而是减慢速度。对于要想使用这些比较复杂的按键就要下番功夫了,下面是我的游戏中使用解决此问题的方案,供参考,同时也希望得到更好的方案给我分享。
P.S.代码中的keyLock变量表示操作模式,在游戏、帮助、工具葙等里面它们都有方向键,但很显然是不一样的操作,需要变量来区分它们。
1
onClipEvent (enterFrame) {
2
if (Key.isDown(67)) {//2-8:C键按下,kissC=1表示C键此时正保持按下状态,kissC=0表示C键此时正保持松开状态,以下同
3
if (_root.kissC == 0) {
4
_root.kissC = 1;
5
}
6
} else if (_root.kissC == 1) {
7
_root.kissC = 0;
8
}
9
if (Key.isDown(90)) {//9-15:Z键由松开状态变成按下状态,执行相应代码并止执行一次
10
if (_root.kissZ == 0) {
11
_root.functionKeyZ();
12
_root.kissZ = 1;
13
}
14
} else if (_root.kissZ == 1) {
15
_root.kissZ = 0;
16
} else if (Key.isDown(88)) {//16-29:X键操作
17
if (_root.kissC == 0) {//17-21:单纯的X键按下操作
18
if (_root.kissX == 0) {
19
_root.functionKeyX();
20
_root.kissX = 1;
21
}
22
} else {//22-24:组合键C+X
23
_root.changeFurnishment();
24
}
25
} else if (_root.kissX == 1) {
26
_root.kissX = 0;
27
if(_root.keyLock == 4){
28
_root.furnishmentEnd = 1;
29
}
30
} else if (Key.isDown(65)) {//30-36:A键,同Z键
31
if (_root.kissA == 0) {
32
_root.functionKeyA();
33
_root.kissA = 1;
34
}
35
} else if (_root.kissA == 1) {
36
_root.kissA = 0;
37
} else if (Key.isDown(27)) {//37-44:Esc键,同Z键
38
if (_root.kissEsc == 0) {
39
_root.functionKeyEsc();
40
_root.kissEsc = 1;
41
}
42
} else if (_root.kissEsc == 1) {
43
_root.kissEsc = 0;
44
}
45
if (Key.isDown(37)) {//45-53:左方向键按下,在不同的操作模式下执行不同的代码,同时变量kissLURD用来减慢执行代码的速度,每隔5次执行一次,以下同理
46
if (_root.keyLock == 0 || _root.keyLock == 1) {
47
_root.functionKeyLeft();
48
} else if (_root.keyLock == 2) {
49
if (_root.kissLURD == 0) {
50
_root.showInfo.goLeft();
51
}
52
_root.kissLURD = (_root.kissLURD+1)%5;
53
}
54
} else if (Key.isDown(38)) {
55
if (_root.keyLock == 0 || _root.keyLock == 1) {
56
_root.functionKeyUp();
57
} else if (_root.keyLock == 2) {
58
if (_root.kissLURD == 0) {
59
_root.showInfo.goUp();
60
}
61
_root.kissLURD = (_root.kissLURD+1)%5;
62
}
63
} else if (Key.isDown(39)) {
64
if (_root.keyLock == 0 || _root.keyLock == 1) {
65
_root.functionKeyRight();
66
} else if (_root.keyLock == 2) {
67
if (_root.kissLURD == 0) {
68
_root.showInfo.goRight();
69
}
70
_root.kissLURD = (_root.kissLURD+1)%5;
71
}
72
} else if (Key.isDown(40)) {
73
if (_root.keyLock == 0 || _root.keyLock == 1) {
74
_root.functionKeyDown();
75
} else if (_root.keyLock == 2) {
76
if (_root.kissLURD == 0) {
77
_root.showInfo.goDown();
78
}
79
_root.kissLURD = (_root.kissLURD+1)%5;
80
}
81
} else {
82
_root.kissLURD = 0;
83
}
84
}
85

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

作者:Rick Carter
出处:http://pains.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分类:
ActionScript
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库