Actionscript 3 停止拖动未按预期工作

Actionscript 3 停止拖动未按预期工作,actionscript-3,Actionscript 3,我尝试拖动某个对象,如果满足某些要求,则在停止拖动时应启动一个函数: if(e.target.dropTarget.parent==targetName | e.target.dropTarget.parent.parent.parent.getChildByName(“cloud”).getChildByName(“itemPlacer”).getChildAt(1)==targetName{ 当我正确地拖动和停止拖动(要求已满)时,这很有效,但是如果不满足要求,我会得到一个错误,说我引用的位

我尝试拖动某个对象,如果满足某些要求,则在停止拖动时应启动一个函数:

if(e.target.dropTarget.parent==targetName | e.target.dropTarget.parent.parent.parent.getChildByName(“cloud”).getChildByName(“itemPlacer”).getChildAt(1)==targetName{

当我正确地拖动和停止拖动(要求已满)时,这很有效,但是如果不满足要求,我会得到一个错误,说我引用的位置不能为空。我知道问题出在
|
部分之后,但我如何解决这个问题


有没有一种较短的方法来执行这些检查?目前,我正在查看许多parents和getchildat语句,并想知道是否还有其他方法。

您可以将一个变量分配给容器,然后在条件语句中使用该变量

编辑:

为了访问getChildByName方法,您的元素至少应转换为DisplayObjectContainer.MovieClip、Sprite extend 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 var main:MovieClip=e.target.dropTarget.parent; var容器:MovieClip=main.parent.parent作为MovieClip; var cloud:MovieClip=container.getChildByName(“云”); var itemPlacer:MovieClip=cloud.getChildByName(“itemPlacer”); var child:MovieClip=container.getChildAt(1); if(main==targetName | | child==targetName) //你的代码在这里 对于另一个问题,请先检查空值,然后再执行其他操作

if(main != null && child != null) { if( main == targetName || child == targetName ) { //your code here } }else{ //your code here } if(main!=null&&child!=null) { if(main==targetName | | child==targetName) { //你的代码在这里 } }否则{ //你的代码在这里 }
描述资源路径位置类型1061:通过静态类型flash的引用调用可能未定义的方法getChildByName。显示:DisplayObject.Start.as/eindwerk MA1/src line 155 Flex问题。我在分配变量时遇到此错误