2014-10-28 71 views
0

嘿家伙,我被困在这里...我有一个向量与6个elements.All元素隐藏初始,然后我只显示位置3元素如此如此:在as3中通过向量循环到左侧和右侧

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直到randomizedA rray [5]。

我需要提及的是我的阵列正在洗牌!

我有什么tryed:

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功能accesed VAR toRight设置为3 :(

再次,如果我没有。清除...我得到了Shuffled数组,我隐藏所有元素和显示元素在阵列上的位置3,我有2个箭头循环阵列从左到右从数组开始[3]。我试图实现的是如何循环左到右Thx :)

回答

1

基于你有,你需要有更多的变量来跟踪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; 
    } 
} 
+0

真的! Thx很多:)没有使用“contor”来增加或减少... – Proless 2014-10-28 13:19:54

+0

使用Vector.indexOf需要更少的代码和更少的成员变量。当你不努力强调你的变量时,使用向量也是毫无意义的。 – BotMaster 2014-10-28 15:22:30