Actionscript 3 打孩子时遇到问题
我刚开始学习actionscript一个月左右,在这段代码中我已经被困了大约两天了Actionscript 3 打孩子时遇到问题,actionscript-3,stage,addchild,Actionscript 3,Stage,Addchild,我刚开始学习actionscript一个月左右,在这段代码中我已经被困了大约两天了 var newtarget:enemy=new enemy(); var-用于定义变量的关键字,newtarget-存储指向新类实例的指针的变量名,:敌方-数据类型(类名),new-用于创建新类实例的关键字,最后敌方是类构造函数(顺便说一句,有一条礼貌规则规定类名大写) 所以,回答你们的问题时,你们应该使用的检查是一些重叠是'新目标' 现在,关于命中测试——检查两个对象是否相互命中所需要做的就是正确使用它们在编
var newtarget:enemy=new enemy();
var
-用于定义变量的关键字,newtarget
-存储指向新类实例的指针的变量名,:敌方
-数据类型(类名),new
-用于创建新类实例的关键字,最后敌方
是类构造函数(顺便说一句,有一条礼貌规则规定类名大写)
所以,回答你们的问题时,你们应该使用的检查是一些重叠是'新目标'
现在,关于命中测试——检查两个对象是否相互命中所需要做的就是正确使用它们在编写代码的项目部分的引用。
例如,如果您在IDE创建的主时间线上有您的fire\u mc
,并且您的foreign
实例的创建代码存储在newtarget
sameplace中,那么如果您的检查将被放置在主时间线上两个对象都存在的帧中,它将是这样的
fire_mc.hitTestObject(newtarget);
还是这个
新目标hitTestObject(fire_mc);
所有这些语句都给出相同的结果-如果对象彼此相交,则返回true
如果您在MainTimeline上创建了“newtarget”,并且检查将从fire\u mc
(在MainTimeline上)帧开始,那么代码将类似于此
this.hitTestObject(MovieClip(root).newtarget);
现在介绍一下
root
。它主要是DisplayObject
的一个属性,其中存储了对swf文件结构中最顶层显示对象的引用。因此,它被所有子类继承。下面是诀窍。当您尝试使用root在swf结构中获取对象时,区别在于root
始终以DisplayObject
的形式返回对象,这意味着如果对象包含DisplayObject
不应该包含的内容,则无法获取该对象。因此,必须将返回的引用转换为需要的数据类型usignMovieClip(…)
谢谢@Aspiro的详细解释,但是上面的方法似乎不起作用。如果有时间,你能看看我的文件吗?上面的fire\u mc在我的文件中被命名为“fF”,是由“actor\u mc”添加的一个孩子……敌人的addChild行在第三帧,命中测试写在“fire”的第二帧找到了一种在不使用特定代码部分的情况下实现相同效果的方法……但感谢您告知我有关Display Object、DisplayObjectContainer和所有其他详细信息:)
this.hitTestObject(MovieClip(root).newtarget);