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
谢谢!对不起,我现在也明白你的意思了,我会努力使用更好的实践。