Flash多维数组的动画片段

时间:2015-04-19 20:18:37

标签: arrays flash actionscript-2 fractions

使用分数对教育程序进行编程,您可以在数字/活动的digiboard(或PC屏幕)上触摸分数的一部分。再次触摸或单击它会再次变为白色/不活动状态。等等...

要将具有所有彩色部分的分数重置为白色,我想在调用函数resetFraction时按一个按钮。请看下面的代码,看起来在带有动画片段的二维数组中出错 - 没有从彩色到白色部分的变化。所有包含movieclips名称的数组:

//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

二维数组似乎是个问题。

任何人都可以帮助我吗?它通过一个函数节省了大量代码来实现这一目的。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我出去了!

而不是点(。)我在partAr数组中使用数组访问运算符([])和引号(&#34;&#34;):

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);
    }
}

简单,不是吗?