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

时间:2013-05-10 13:32:49

标签: actionscript-3 flash class movieclip

我前几天问了一个问题,它教会了我一些关于显示对象和东西的信息。我有另一个问题。

这是我的文档类:

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);

        }

    }

}

catBluKnife是我的图书馆中的动画片段,与这些名称有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参数而只是制作Enemy1cat并制作Enemy2Bluknife这些影片剪辑按预期添加到舞台上。但是现在我正在尝试让Callitems接受参数,以便我可以在某些时间放置不同的剪辑,我收到以下错误:

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

谢谢大家,非常感谢任何帮助

编辑:我在搜索此网站时遇到了同样的错误,但我不明白这个问题,对不起!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

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