2010-08-23 61 views
0

我尝试拖动的东西,并在stopdrag应该开始,如果某些要求得到满足的功能无法正常工作),但如果不符合要求,我会收到一个错误消息,指出我所指的地点不能为空。我知道问题出在||部分之后,但我该如何解决这个问题?Stopdrag如预期

有没有更简单的方法来做这些检查?目前,我正在经历很多家长和getchildat声明,并想知道是否有另一种方式。

回答

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 
    } 
+0

说明\t \t资源路径\t \t位置类型 1061:通过与静态类型flash.display使用的参考呼叫可能未定义的方法getChildByName:的DisplayObject。 \t Start.as \t/eindwerk MA1/src \t line 155 \t Flex问题。 分配变量时出现此错误 – vincent 2010-08-23 17:01:39