嘿伙计们,我被困在这里了...我有一个包含 6 个元素的向量。所有元素最初都是隐藏的,然后我只显示位置 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 个箭头从数组开始向左和向右循环数组[ 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/