什么是以下AS2代码的AS3等效物?
我试图把下面的AS2代码翻译成AS3,因为我有Adobe Flash CC,据我所知(从研究,试验和错误),它不支持AS2代码。任何帮助将不胜感激...什么是以下AS2代码的AS3等效物?
onClipEvent(load) {
speed = 0;
acceleration = 0.4;
speedDecay = 0.96;
maxSpeed = 10;
backSpeed = 1;
}
onClipEvent(enterFrame) {
if(Math.abs(speed) > 0.3) {
speed *= speedDecay;
}else {
speed = 0;
}
if(Key.isDown(Key.UP)) {
if (Math.abs(speed) >= maxspeed) {
speed += acceleration;
}
}
if(Key.isDown(Key.DOWN)) {
if(speed < 0.5)
speed = -2;
else
speed--;
}
if (Math.abs(speed)> 0.5) {
if (Key.isDown(Key.LEFT)) {
_rotation -= 10;
}
if (Key.isDown(Key.RIGHT)) {
_rotation += 10;
}
}
x = Math.sin(_rotation*(Math.PI/180))*speed;
y = Math.cos(_rotation*(Math.PI/180))*speed*-1;
if (!_root.ground.hitTest(_x+x, _y+y, true)) {
_x += x;
_y += y;
}else {
speed -= speed*1.5;
}
}
此代码将在我的汽车游戏的汽车层。
将这个代码汽车的影片剪辑中的第1帧:
var speed: Number = 0;
var acceleration: Number = 0.4;
var speedDecay: Number = 0.96;
var maxSpeed: Number = 10;
var backSpeed: Number = 1;
var pressedKeys: Object = {}
stage.addEventListener(Event.ENTER_FRAME, loop)
stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown)
stage.addEventListener(KeyboardEvent.KEY_UP, keyup)
function keydown(e: KeyboardEvent) {
pressedKeys[e.keyCode] = true
}
function keyup(e: KeyboardEvent) {
if (pressedKeys[e.keyCode]) {
pressedKeys[e.keyCode] = false
}
}
function loop(e: Event) {
if (Math.abs(speed) > 0.3) {
speed *= speedDecay;
} else {
speed = 0;
}
if (pressedKeys[Keyboard.UP]) {
if (Math.abs(speed) >= maxSpeed) {
speed += acceleration;
}
}
if (pressedKeys[Keyboard.DOWN]) {
if (speed < 0.5)
speed = -2;
else
speed--;
}
if (Math.abs(speed) > 0.5) {
if (pressedKeys[Keyboard.LEFT]) {
this.rotation -= 10;
}
if (pressedKeys[Keyboard.RIGHT]) {
this.rotation += 10;
}
}
var vx: Number = Math.sin(this.rotation * (Math.PI/180)) * speed;
var vy: Number = Math.cos(this.rotation * (Math.PI/180)) * speed * -1;
if (!MovieClip(root).ground.hitTestPoint(this.x + vx, this.y + vy, true)) {
this.x += vx;
this.y += vy;
} else {
speed -= speed * 1.5;
}
}
我把你的代码放入汽车影片剪辑图层的第1帧。但是,当我调试电影时,它会毫无错误地播放电影,但我无法控制汽车在电影中移动。 –
它应该在影片剪辑中,而不是图层。至少它看起来像曼纽尔所暗示的那样。我没有在时间表上编码,所以我可能会误解。 –
如何定义变量“root”? –
那么,什么是错,你试图使AS3版本? **显示代码**,以便我们可以提供建议。否则不清楚**特定问题**在这里。手册(或Google)可以告诉你如何制作AS3的enterFrame函数,并显示AS3键盘示例代码 –
Adobe Flash CC使用AS3而不是AS2,所以我需要将上面的AS2代码改成AS3。 –
我知道关于AS2被弃用。该网站的要点是在启动**之后询问何时卡住**。一个很好的问题包括_“..到目前为止,我已经为AS3版本做了这些努力,但我坚持把这个XYZ部分转换成AS2代码”_ –