2014-10-28 36 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