我制作了一个mc对象。该对象可以通过键盘左右移动。详细信息是,当我按向右键时,它将在特定坐标处移动到右侧位置;当我按向左键时,它将在特定坐标处移动到左侧位置。我希望对象仅在3个位置移动。
在这种情况下,我尝试使用数组。
var P:Array = [new Point(100, 300), new Point(275, 300), new Point(425, 300)];
var M:Array = [Kotak];
但是当我将它们输入到我的代码中时,它不起作用,并且不会出现错误。谁能告诉我我的错在哪里?
这是我的完整代码:
import flash.geom.Point;
//gerak pemain
var pemainKanan:Boolean = false;
var pemainTengah:Boolean = false;
var pemainKiri:Boolean = false;
//kecepatan
var kecepatanPemain:int = 20;
//Array object acak
var P:Array = [new Point(100, 300), new Point(275, 300), new Point(425, 300)];
var M:Array = [Kotak];
//var P:Point = new Point(100, 300);
Kotak.addEventListener(KeyboardEvent.KEY_UP, k);
function k(e:KeyboardEvent):void{
if(e.keyCode == Keyboard.RIGHT){
pemainKanan = false;
}
if(e.keyCode == Keyboard.LEFT){
pemainKiri = false;
}
}
Kotak.addEventListener(KeyboardEvent.KEY_DOWN, kk);
function kk(e:KeyboardEvent):void{
if(e.keyCode == Keyboard.RIGHT){
pemainKanan = true;
}
if(e.keyCode == Keyboard.LEFT){
pemainKiri = true;
}
}
Kotak.addEventListener(Event.ENTER_FRAME, eframe);
function eframe(e:Event):void{
if(pemainKanan == true){
//pemain.gotoAndStop("right");
Kotak.x = P[0];
}
else if(pemainKiri == true){
//pemain.gotoAndStop("left");
Kotak = P[1];
}
}
您能详细解释一下吗?根据我的阅读,我了解到您希望将MovieClip移动到三个位置。例如,如果它在position0上并按向右,则应移动到position1,但是如果它在position1中,则应移动到position2,反之亦然,用左键。这是你想做的吗?如果它是不需要的,则不需要ENTER_FRAME事件,因为可以使用索引来完成所有操作。
Kotak.addEventListener(KeyboardEvent.KEY_DOWN, kk);
var index:int=0;
function kk(e:KeyboardEvent):void{
if(e.keyCode == Keyboard.RIGHT){
if(index==0){
Kotak.x = P[1];
}
else{
if(index==1){
Kotak.x = P[2];
}
}
index++;
}
if(e.keyCode == Keyboard.LEFT){
if(index==2){
Kotak.x = P[1];
}
else{
if(index==1){
Kotak.x = P[0];
}
}
index--;
}
}