Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 打孩子时遇到问题_Actionscript 3_Stage_Addchild - Fatal编程技术网

Actionscript 3 打孩子时遇到问题

Actionscript 3 打孩子时遇到问题,actionscript-3,stage,addchild,Actionscript 3,Stage,Addchild,我刚开始学习actionscript一个月左右,在这段代码中我已经被困了大约两天了 var newtarget:enemy=new enemy(); var-用于定义变量的关键字,newtarget-存储指向新类实例的指针的变量名,:敌方-数据类型(类名),new-用于创建新类实例的关键字,最后敌方是类构造函数(顺便说一句,有一条礼貌规则规定类名大写) 所以,回答你们的问题时,你们应该使用的检查是一些重叠是'新目标' 现在,关于命中测试——检查两个对象是否相互命中所需要做的就是正确使用它们在编

我刚开始学习actionscript一个月左右,在这段代码中我已经被困了大约两天了

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
不应该包含的内容,则无法获取该对象。因此,必须将返回的引用转换为需要的数据类型usign
MovieClip(…)

谢谢@Aspiro的详细解释,但是上面的方法似乎不起作用。如果有时间,你能看看我的文件吗?上面的fire\u mc在我的文件中被命名为“fF”,是由“actor\u mc”添加的一个孩子……敌人的addChild行在第三帧,命中测试写在“fire”的第二帧找到了一种在不使用特定代码部分的情况下实现相同效果的方法……但感谢您告知我有关Display Object、DisplayObjectContainer和所有其他详细信息:)
this.hitTestObject(MovieClip(root).newtarget);