大家好,我被困在这里...我有一个包含6个元素的Vector。所有元素都是隐藏的初始字母,我只显示第3位的元素,如下所示:

for (var i:int = 0; i < 6; i++) {
    randomizedTexts[i].alpha = 0;
}

var itemLookingFor = randomizedTexts[randomizedTexts.length - 3];
itemLookingFor.alpha = 1;


一切都很好,但是...我添加了两个箭头(左和右)的事件:

leftArrow.addEventListener(MouseEvent.CLICK, goLeft);
rightArrow.addEventListener(MouseEvent.CLICK, goRight);


在goLeft和goRight函数中,我需要显示位置3上的元素,如果我向左按以显示randomizedArray [3]-1直到randomizedArray [0],向右按以显示randomizedArray [3] +1直到randomizedArray [5]。

我需要提及的是,我的阵列被打乱了!!!

我尝试过的

private function goRight(e:MouseEvent):void
        {
            for (var i:int = 0; i < 6; i++) {
                randomizedTexts[i].alpha = 0;
            }
            var toRight:Number = 3;
            toRight++;
            trace(toRight);
            randomizedTexts[toRight].alpha = 1;
        }


我知道每次goRight函数都被访问不是很好,因为var toRight设置为3 :(。

再说一次,如果我不清楚...我得到了洗牌的数组,我隐藏了位置3上的所有元素并显示了数组中的元素,我有2个箭头从array [3]开始在数组中向左和向右循环。我试图实现的是如何向左和向右循环。谢谢 :)

最佳答案

根据您所拥有的,您需要更多一些变量来跟踪goLeft和goRight位置。您还应该创建一个单独的函数以将所有Alpha归零。每当您的goLeft或goRight函数被调用时,它都会向上或向下迭代应定位的索引。

var leftPosition: int;
var rightPosition: int;
var centerPosition: int; // this can be used if you want your center position to be dynamic
var randomizedTexts: Array;
var itemLookingFor: Sprite;

init();

private function init() {
    centerPosition = 3;  // Change this number if you switch to something dynamic
    rightPosition = centerPosition + 1;
    leftPosition = centerPostion - 1;
    leftArrow.addEventListener(MouseEvent.CLICK, goLeft);
    rightArrow.addEventListener(MouseEvent.CLICK, goRight);
    itemLookingFor = randomizedTexts[centerPosition];
    zeroAlphas();
}

private function zeroAlphas():void {
    for (var i:int = 0; i < randomizedTexts.length; i++) {
        randomizedTexts[i].alpha = 0;
    }
}

private function goRight(e:MouseEvent):void {
    if(rightPosition < randomizedTexts.length -1) {
        randomizedTexts[rightPosition++].alpha = 1;
    }
}

private function goLeft(e:MouseEvent):void {
    if(leftPosition > 0) {
        randomizedTexts[leftPosition--].alpha = 1;
    }
}

关于javascript - 左右循环遍历as3中的向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26608172/

10-15 02:05