使用分数对教育程序进行编程,您可以在数字/活动的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
二维数组似乎是个问题。
任何人都可以帮助我吗?它通过一个函数节省了大量代码来实现这一目的。
非常感谢。
答案 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);
}
}
简单,不是吗?