Adobe Animate CC [英] Adobe Animate CC

查看:244
本文介绍了Adobe Animate CC的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

TypeError:错误#1034:类型强制转换失败:无法将"Um1"转换为flash.display.MovieClip

TypeError: Error #1034: Type Coercion failed: cannot convert "Um1" to flash.display.MovieClip

Um1,Um2,Um3 .....我舞台上的MovieClip对象

Um1, Um2, Um3..... MovieClip Object in my Stage

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]);
    }
  }
}

推荐答案

此行:

Um[i] = "Um" + Number(i + 1);

用字符串值填充您的Um数组.稍后,您可以像使用MovieClip(不是)那样使用该值,因此会收到该错误. trace(Um[i])行很可能在应为"[Object MovieClip]"的情况下产生"Um1","Um2"等

is populating your Um array with a string value. You later use that value like it's a MovieClip (which it isn't), so you get that error. Most likely your trace(Um[i]) line results in "Um1", "Um2" etc. when it should be "[Object MovieClip]"

假设实例名称在试图获取引用的相同作用域内,则可以执行以下操作之一.

Assuming you have instance names in the same scope you are trying to get references to, you can do one of the following.

使用 getChildByName :

Um[i] = getChildByName("Um" + (i + 1));

或者将当前时间轴(此)用作字典:

OR use the current timeline (this) like a dictionary:

Um[i] = this["Um" + (i + 1)];    

这篇关于Adobe Animate CC的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆