具有格式的Actionscript 3.0字符串?

The*_*978 23 string-formatting actionscript-3

如何在AS3中使用提供的变量格式化字符串?

//vars
var myNumber:Number = 12;
var myString:String = "Months";
var myObject:MovieClip = year;

//string
myString.txt = "One (?) consists of (?) consecutive (?)", string(myObject), string(myNumber), myString;
Run Code Online (Sandbox Code Playgroud)

所以在上面的字符串中,我希望myString显示"一年由连续12个月组成 ",但我是AS3的新手,并且不知道如何正确格式化字符串.

我确定我必须将数字变量强制转换为字符串,字符串(myNumber),但我不知道是否将影片剪辑变量转换为字符串,字符串(myMovieClip),将返回名称影片剪辑或产生错误.我愿意打赌后来.

Jor*_*ing 48

这个类似问题的答案建议使用Formatter类或StringUtil.substitute().

后者看起来最简单; 在你的情况下你会像这样使用它:

var str:String = "One {0} consists of {1} consecutive {2}";
var newString:String = StringUtil.substitute(str, myObject, myNumber, myString);
Run Code Online (Sandbox Code Playgroud)

substitute()应该自动将其参数转换为String,但我不确定是否可以像在代码中一样将MovieClip(myObject)转换为String.

另一个不错的选择,特别是如果你已经printf在其他编程语言中使用,是第三方printf-as3函数.