AS2:使用 .createTextField() 时出错
AS2: error using .createTextField()
我想用数字索引一个简单的二维坐标系。所以我必须添加多个 TextFields。我这样试过:
for (var i = 1;i<4;i++){
display.createTextField("x_"+i, 1, (10*i)+5, 0, 10, 20);
eval("display.x_"+i).text = i;
eval("display.x_"+i).textColor = 0x000000;
}
但这只输出最后一个数字(在本例中为3),但为什么呢?
我被禁止使用 ActionScript 3,因为我们只使用 Macromedia Flash 8。
您仍然可以尝试在 actionscript 2 中使用强类型变量。
此外,您可以将新文本字段存储在变量中以避免使用 eval()
.
另一个问题是您使用常量 (1) 作为 createTextField()
函数的第二个参数。这意味着您最后将只创建一个文本字段:最后一个,这就是您看到 3 的原因。
因为所有 3 个文本字段在同一个动画片段中都处于相同的深度,所以最近添加的文本字段将替换之前的文本字段:
for (var i:Number = 1; i < 4; i++){
var textField:TextField = display.createTextField("x_"+i, i, (10*i)+5, 0, 10, 20);
textField.text = i.toString();
}
注意 i
作为第二个参数传递,而不是 1
。
此外,如果有帮助,您可以将它们存储在一个数组中供以后使用:
var textFields:Array = [];
for (var i:Number = 1; i < 4; i++){
textFields[i] = display.createTextField("x_"+i, i, (10*i)+5, 0, 10, 20);
textFields[i].text = i;
}
(根据documentation,默认的textColor为0x000000)
我想用数字索引一个简单的二维坐标系。所以我必须添加多个 TextFields。我这样试过:
for (var i = 1;i<4;i++){
display.createTextField("x_"+i, 1, (10*i)+5, 0, 10, 20);
eval("display.x_"+i).text = i;
eval("display.x_"+i).textColor = 0x000000;
}
但这只输出最后一个数字(在本例中为3),但为什么呢? 我被禁止使用 ActionScript 3,因为我们只使用 Macromedia Flash 8。
您仍然可以尝试在 actionscript 2 中使用强类型变量。
此外,您可以将新文本字段存储在变量中以避免使用 eval()
.
另一个问题是您使用常量 (1) 作为 createTextField()
函数的第二个参数。这意味着您最后将只创建一个文本字段:最后一个,这就是您看到 3 的原因。
因为所有 3 个文本字段在同一个动画片段中都处于相同的深度,所以最近添加的文本字段将替换之前的文本字段:
for (var i:Number = 1; i < 4; i++){
var textField:TextField = display.createTextField("x_"+i, i, (10*i)+5, 0, 10, 20);
textField.text = i.toString();
}
注意 i
作为第二个参数传递,而不是 1
。
此外,如果有帮助,您可以将它们存储在一个数组中供以后使用:
var textFields:Array = [];
for (var i:Number = 1; i < 4; i++){
textFields[i] = display.createTextField("x_"+i, i, (10*i)+5, 0, 10, 20);
textFields[i].text = i;
}
(根据documentation,默认的textColor为0x000000)