大家好,我被困在这里...我有一个包含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/