1046:未找到类型没有意义!

时间:2010-10-21 22:37:23

标签: flash actionscript-3 actionscript flash-cs4

我有几个自定义类。我们称它们为“Character”,它应该导入并使用“Head”。然后“Head”导入并使用“Hat”。这很好......

package character
{
 import flash.display.MovieClip;
 import flash.events.Event;
 import flash.display.Stage; 
 import flash.display.Sprite;
 import flash.events.Event;
 import character.Head;
 import character.Hat;

 public class Character extends MovieClip 
 {
  // the objects
  public var _head:Head;
            // IF I UNCOMMENT THIS, I GET THIS 1046 ERROR 
  // public var asdfasfd:Hat;

  public function Character():void
  {
   trace("NEW CHARACTER");

   _head=new Head(stageRef, head_text);
   //_shirt=new Shirt(stageRef, shirt);      
  }

 }

}

然后负责人:

package character
{
 import flash.display.MovieClip;
 import flash.events.Event;
 import flash.display.Stage; 
 import character.Hat;

 // the character's head 
 public class Head extends MovieClip 
 {  
  public var _hat:Hat;  

  function Head(head_type:String=null):void
  {   
   trace ("NEW HEAD");

   this._hat = new Hat();   
  }
 }

}

最后是帽子课:

package character 
{
 import flash.display.MovieClip;
 import flash.events.Event;
 import flash.display.Stage;
 import character.*;

 // the character's head 
 public class Hat extends MovieClip 
 {      
  private var stageRef:Stage;

  function Hat(stageRef:Stage=null, type:String=null):void
  {
   trace ("NEW HAT");
  } 

 }

}

这顺便说一句。简单就像馅饼......但是如果我尝试创建一个新的“Hat”实例,甚至在“Character”中定义Hat变量,它会给我编译时错误: 1046:未找到类型或不是编译时常量:Hat。

如果我尝试定义“Hat”类并在我的主脚本中创建一个新的“Hat”实例,或者在“Hat”中它就像一个魅力...如果我尝试在我的“角色”中这样做它给了我这个荒谬的错误。我检查了我的进口,它们都是一样的!!为什么世界上这样做?!我真的浪费了整整一天!!!!!

编辑/额外信息: 我确实有5个几乎完全相同的课程,比如衬衫,裤子,头,帽子,手臂......其中一些是有效的,有些则不然。我复制了n'粘贴的一个完全通用的类,它可以在一个没有但仍然没有的情况下工作。它们都很好地链接并导出为ActionScript ...一切都是相同的,除了一些工作和其他人不。但是那些没有的,如果我将它们包含在被调用的类中,或者其他任何地方就可以工作......只是不在我需要的类中。我现在24小时都在做同样的事情。我需要一个假期......

3 个答案:

答案 0 :(得分:0)

我不确定它是否有意义,但尝试重命名您的包(afaik包名称不区分大小写,因此它符合Character类名称)

答案 1 :(得分:0)

这绝对是一个奇怪的错误,因为它与你的课无关。该错误提到了一个KeyboardEvent,并且代码中没有任何迹象,并且没有明显的类需要KeyboardEvent。

为了测试,您可以更改此行:

import flash.events.Event;

对此:

import flash.events.*;

当然,它无法解决问题,但如果错误消失,您可能需要在代码中跟踪此KeyboardEvent。

答案 2 :(得分:0)

构造函数不应该有返回类型。通过调用构造函数返回实例。所以你应该把它留下来。这有时会导致问题。

此外,您不必导入与您引用它们的类相同的包中的类。

我尝试过复制并粘贴代码,它给了我3个错误:

Character.as(22): col: 21 Error: Access of undefined property stageRef.

    _head=new Head(stageRef, head_text);
                   ^

Character.as(22): col: 31 Error: Incorrect number of arguments.  Expected no more than 1.

    _head=new Head(stageRef, head_text);
                             ^

Character.as(22): col: 31 Error: Access of undefined property head_text.

    _head=new Head(stageRef, head_text);
                             ^

如果我删除stageRef和head_text,那么它会编译并运行正常。

您是否尝试删除.swf文件并重新编译?