如何使对象在特定位置移动为as3

问题描述 投票:0回答:1

我制作了一个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];
        }
    }

actionscript-3 flash-cs6
1个回答
0
投票

您能详细解释一下吗?根据我的阅读,我了解到您希望将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--;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.