Actionscript 3 Flash AS3-1046:找不到类型或类型不是编译时常量:

Actionscript 3 Flash AS3-1046:找不到类型或类型不是编译时常量:,actionscript-3,flash,class,movieclip,Actionscript 3,Flash,Class,Movieclip,前几天我问了一个问题,它教会了我一些关于显示对象和东西的知识。不过我还有一个问题 这是我的文档类: package { import flash.display.MovieClip; import flash.display.Stage; public class Engine extends MovieClip { public function Engine() { var calling:Cal

前几天我问了一个问题,它教会了我一些关于显示对象和东西的知识。不过我还有一个问题

这是我的文档类:

package 
{

    import flash.display.MovieClip;
    import flash.display.Stage;

    public class Engine extends MovieClip
    {

        public function Engine()
        {
            var calling:Callitems = new Callitems(cat, BluKnife)

            stage.addChild(calling);

        }

    }

}
cat
BluKnife
是我的库中的movieclips,与这些名称有as3链接

现在是
Callitems

package 
{

    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.display.InteractiveObject;


    public class Callitems extends MovieClip{


    public function Callitems(Enemy1, Enemy2)
    {
        var knife:Enemy1 = new Enemy1();

        this.addChild(knife);
        knife.x = 200;


        var ct:Enemy2 = new Enemy2();

        this.addChild(ct);


    }

}

}
现在我的问题是,当我没有给出
Callitems
参数,而只是制作
Enemy1
cat
Enemy2
blueknife
时,这两部电影的嘴唇都像预期的那样被添加到了舞台上。但现在我试图让
callitem
接受参数,以便在特定时间放置不同的剪辑,我得到以下错误:

1046:找不到类型或类型不是编译时常量:Enemy1。 1046:找不到类型或类型不是编译时常量:Enemy2

谢谢大家,非常感谢你们的帮助


编辑:我确实在这个网站上搜索了同样的错误,但是我不理解这个问题,对不起

问题在于,当您定义
var-knife:Enemy1
时,编译器无法将
Enemy1
识别为类型(因为它是一个变量名)。尝试将其转换为更通用的类型:

var knife:MovieClip = new Enemy1() as MovieClip;

问题是您似乎将类名作为Callitems构造函数的参数。 应该是这样的:

public function Callitems(parameter1:Enemy1, parameter2:Enemy2)
    {...

您还将未定义的变量传递给Callitems构造函数(cat和BluKnife)。如果它们应该被传递到Callitems中(这也许不是一个好主意),那么至少应该首先定义它们。

不客气,但请阅读@mossefetcher的答案作为weel。您还应该为构造函数的参数指定一个类型。你也应该使用小写变量(刀,类型1)和大写类(猫,蓝刀)。是的,我尝试了这个解决方案和mossefetcher的方案,但是我得到了相同的答案。也许我做错了。您的意思是将类型指定为敌人:MovieClip?不是让它使用默认的“object”类型吗?是的,对不起,我是说
公共函数Callitems(type1:Class,type2:Class)
然后
var-knife:MovieClip=new-type1()作为MovieClip
谢谢!对不起,我现在也明白你的意思了,我会努力使用更好的实践。