在as3中我有以下代码:
var index1
var index2
var num1, num2, num3;
num1 = 1;
num2 = 1;
var nombres:Array = new Array(
"Ana", "Pedro", "María", "Lily", "Juan", "Rita", "Gonzalo", "Fernanda"
);
var ejercicios_Suma: Array = new Array(
num1+", "+num2+" name:"+nombres[1]
);
dialog();
function dialog (){
num1 = 25
num2 = 26
trace ("********** "+num1+"***** "+num2)
trace (ejercicios_Suma[0])
}
我无法想象如何调用对话框函数中生成的“num1”,因为变量被代码外部的变量替换。
任何指针/解决方案?
提前致谢。
-----编辑如下,更好地解释问题----
现在,跟踪结果如下: * ** 25 **** 26 1,1名称:佩德罗
我需要的是拥有以下内容: * ** 25 **** 26 25,26名称:Pedro< ---这些是在对话框功能中生成的值,而不是在函数外部声明的值。
答案 0 :(得分:0)
在这一行中,
var ejercicios_Suma: Array = new Array(num1 + ", " + num2 + " name:" + nombres[1]);
您正在创建一个只包含一个元素的数组,一个值为(num1 + ", " + num2 + " name:" + nombres[1])
的字符串。在创建该字符串时,num1和num2等于1.因此,该数组恰好等于["1, 1, name:Pedro"]
。
即使您返回并编辑num1和num2,也不会更新在该数组中创建的字符串。
我根本无法告诉您要使用此代码完成什么,因此很难说如何修复代码。但是,这应该可以解释为什么你会看到你所看到的。