2012-01-26 84 views
1

hitTestObject有一些问题,现在Flash告诉我它不能将我的船转换为显示对象..我的问题是船类扩展精灵开始,所以我不知道这是怎么回事:AS3:错误#1034:类型强制失败:无法转换为flash.display.DisplayObject

编译错误表明这一点:

TypeError: Error #1034: Type Coercion failed: cannot convert Ship$ to flash.display.DisplayObject. 
at Control/controlgame() 

控制/ 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

你在哪里申报Ship?它看起来像你使用Class为你的测试,而不是一个实例...你有什么喜欢Ship = new ShipClass()某处?

+0

我的船舱叫做船。让我改变一下,告诉你我是怎么走的。 – hazdog

+0

没有骰子,问题保持不变。我在时间线/舞台上放置了我的船,因为如果我尝试放置“var s = new Ship()”,它说s是未定义的。此外,我只是做了一个编辑..这是文档类有什么区别吗?我之前没有遇到过这个问题,请点击测试对象..谢谢。 – hazdog

+0

那么,如果你有一个文档类,你应该声明'public var s:Ship = new Ship();'那里。那么它不应该是undefined .. – bummzack

相关问题