2015-04-19 22 views
0

使用分數編程教育程序,您可以觸摸變成彩色/活動的digiboard(或電腦屏幕)上的一小部分。觸摸或再次點擊它,它會再次變爲白色/無效。等等...動畫片段的閃爍多維數組

若要將其所有彩色部分重設爲白色,我希望只按一次該按鈕即可調用函數resetFraction。請看下面的代碼,它在帶有動畫片段的二維數組中出現錯誤 - 從彩色變爲白色部分。含的movieclip的名稱的所有陣列:

//array with fractions containing the (real) movieclips of parts 
//mc_frac1 has one part, mc_frac2 has two parts, and so on 
var fractionAr : Array = new Array(mc_frac1, mc_frac2, mc_frac3, mc_frac4, mc_frac5); 

//array with max-index for partAr, see below 
var maxPart : Array = new Array(1,2,3,4,5); 

//array with parts, 2 dimensional with a variable index per fraction 
var partAr : Array = new Array(
     new Array(mc_part1_1), 
     new Array(mc_part2_1, mc_part2_2), 
     new Array(mc_part3_1, mc_part3_2, mc_part3_3), 
     new Array(mc_part4_1, mc_part4_2, mc_part4_3, mc_part4_4), 
     new Array(mc_part5_1, mc_part5_2, mc_part5_3, mc_part5_4, mc_part5_5)); 

//put all parts back to 'untouched' (color white) 
function resetFraction(var FracNum : Number) { 
var p : Number = FracNum; 
for (var i = 0; i < maxPart[p]; i++) { 
    fractionAr[p-1].partAr[p-1][i].gotoAndStop(1); 
    } 
} 

這下面的代碼被分割在部分以看到它出錯:

p = 4; 
mc_frac4.mc_part4_2.gotoAndStop(1); //works 
fracAr[p-1].mc_part4_2.gotoAndStop(1); //works 
//but 
fracAr[p-1].partAr[3][1].gotoAndStop(1); //does nothing 

的二維陣列似乎是問題。

任何人都可以幫到我嗎?它通過一個功能節省了很多代碼來實現這一點。

非常感謝。

回答

0

我出去了!

代替點我使用數組ACCES運營商([])和引號(」「)的partAr陣列中的(。):

var partAr : Array = 
     new Array(
     new Array("mc_part1_1"), 
     new Array("mc_part2_1", "mc_part2_2"), and so on... 

而在函數的第四行變成這樣:

function resetFraction(var FracNum : Number) { 
var p : Number = FracNum; 
for (var i = 0; i < maxPart[p]; i++) { 
    fractionAr[p-1][partAr[p-1][i]].gotoAndStop(1); 
    } 
} 

很簡單,不是嗎?