Программирование образовательной программы с помощью фракций, вы можете коснуться части дроби на цифровом экране (или экране ПК), который становится цветным/активным. Коснитесь или щелкните его второй раз, и он снова станет белым/неактивным. И так далее ...Flash многомерный массив movieclips
Чтобы сбросить долю со всеми ее цветными частями на белый, я хочу нажать одну кнопку, когда вы вызываете функцию resetFraction. Пожалуйста, взгляните на приведенный ниже код, кажется, что он ошибочен в двумерном массиве с мувиклипами - без изменений от цветной до белой части. Все массивы, содержащие имена мувиклипов:
//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
Двумерный массив, кажется, проблема.
Кто-нибудь может мне помочь? Это экономит много кода, чтобы реализовать это с помощью одной функции.
Большое спасибо.