我前几天问了一个问题,它教会了我一些关于显示对象和东西的信息。我有另一个问题。
这是我的文档类:
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
是我的图书馆中的动画片段,与这些名称有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
,Bluknife
这些影片剪辑按预期添加到舞台上。但是现在我正在尝试让Callitems
接受参数,以便我可以在某些时间放置不同的剪辑,我收到以下错误:
1046:未找到类型或不是编译时常量:Enemy1。 1046:未找到类型或不是编译时常量:Enemy2。
谢谢大家,非常感谢任何帮助
编辑:我在搜索此网站时遇到了同样的错误,但我不明白这个问题,对不起!
答案 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(这可能不是一个好主意),至少应该首先定义它们。