使用hitTestObject遇到一些麻烦,现在Flash告诉我它无法将我的船转换为显示对象..我的问题是船级扩展Sprite开始,所以我不知道发生了什么:
编译错误显示:
TypeError: Error #1034: Type Coercion failed: cannot convert Ship$ to flash.display.DisplayObject.
at Control/controlgame()
Control / controlgame()是这样的:
function controlgame(e:Event) {
for (var i = 0; i < wprojectiles.length; i ++) {
if (wprojectiles[i].x < -200 || wprojectiles[i].x > 750 || wprojectiles[i].y < -200 || wprojectiles[i].y > 600) {
parent.removeChild(wprojectiles[i]);
wprojectiles.splice(i,1);
}
if (wprojectiles[i].hitTestObject(Ship)) {
parent.removeChild(wprojectiles[i]);
wprojectiles.splice(i,1);
}
}
}
使用调试器,我收到此错误:
TypeError: Error #1034: Type Coercion failed: cannot convert Ship$ to flash.display.DisplayObject.
at Control/controlgame()[C:\Users\Harry\Desktop\Flash Games\Games\Dodge\Control.as:29]
在上面的代码片段中看到的第29行是:
if (wprojectiles[i].hitTestObject(Ship)) {
在这里撕裂我的头发,尝试了我能想到的一切,无论我做什么,我每次都会得到这个错误!帮助会非常感激!
提前致谢。
e:如果它具有相关性,那么这是我的文档类文件
答案 0 :(得分:1)
你在哪里宣布Ship
?看起来您正在使用Class
进行测试而不是实例...您在某处有Ship = new ShipClass()
之类的内容吗?