AS3:错误#1034:类型强制失败:无法转换为flash.display.DisplayObject

时间:2012-01-26 13:26:40

标签: actionscript-3

使用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:如果它具有相关性,那么这是我的文档类文件

1 个答案:

答案 0 :(得分:1)

你在哪里宣布Ship?看起来您正在使用Class进行测试而不是实例...您在某处有Ship = new ShipClass()之类的内容吗?