TypeError:错误#1034:类型强制失败:无法将"Um1“转换为flash.display.MovieClip
Um1、Um2、Um3.....舞台中的MovieClip对象
var Um: Array = new Array();
for (var i: int = 0; i < 10; i++) {
Um[i] = "Um" + Number(i + 1);
}
this.addEventListener(Event.ENTER_FRAME, HitUm);
function HitUm(event: Event) {
for (var i: int = 0; i < 10; i++) {
if(MovieClip(Um[i]).hitTestObject(car_mc.rabond_mc)) {
trace(Um[i]);
}
}
}发布于 2017-07-05 01:36:10
下面这一行:
Um[i] = "Um" + Number(i + 1);正在用字符串值填充您的Um数组。您稍后将该值用作MovieClip (其实不然),因此您会得到该错误。您的对象行最有可能是"Um1“、"Um2”等,而它应该是“trace(Um[i]) MovieClip”。
假设您的实例名称与您试图获取引用的范围相同,则可以执行以下操作之一。
使用getChildByName
Um[i] = getChildByName("Um" + (i + 1));或者像字典一样使用当前时间线(this):
Um[i] = this["Um" + (i + 1)]; https://stackoverflow.com/questions/44911429
复制相似问题