我尝试拖动某些内容,并且在stopdrag上,如果满足某些要求,它应该启动一个函数:
if(e.target.dropTarget.parent == targetName || e.target.dropTarget.parent.parent.parent.getChildByName("cloud").getChildByName("itemPlacer").getChildAt(1) == targetName){
当我正确拖动和停止拖动(需求已满)时,这很有效,但如果不满足要求,我会收到一条错误消息,说我引用的地方不能为空。我知道问题出在||
部分之后,但我该如何解决这个问题?
是否有更短的方式进行这些检查?目前,我正在经历很多家长并得到孩子们的陈述,并想知道是否还有其他方式。
答案 0 :(得分:2)
您可以为容器分配变量,然后在条件语句中使用该变量。
编辑:
为了访问getChildByName方法,您的元素应至少作为DisplayObjectContainer进行转换。 MovieClip,Sprite扩展了DisplayObjectContainer,因此您可以使用其中任何一个。在这里我使用MovieClip,但选择是任意的。
var main:MovieClip = e.target.dropTarget.parent ; var container:MovieClip = main.parent.parent as MovieClip; var cloud:MovieClip = container.getChildByName("cloud"); var itemPlacer:MovieClip = cloud.getChildByName("itemPlacer"); var child:MovieClip = container.getChildAt(1); if( main == targetName || child == targetName ) //your code here
对于另一个问题,请先检查空值。
if(main != null && child != null) { if( main == targetName || child == targetName ) { //your code here } }else{ //your code here }