2010-08-23 2 views
0

я пытаюсь перетащить что-нибудь, а на stopdrag он должен начать функцию, если определенные требования:Stopdrag не работает как задумано

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

Это хорошо работает, когда я перетащить и stopdrag правильно (требования fullfilled), но если требования не выполняются, я получаю сообщение о том, что место, на которое я ссылаюсь, не может быть нулевым. Я знаю, что проблема возникает после части ||, но как я могу это решить?

Есть ли более короткий способ проведения этих проверок? На данный момент я переживаю много родителей и высказываний о том, что происходит, и задавался вопросом, есть ли другой способ.

ответ

2

Вы можете назначить переменную вашему контейнеру, а затем использовать переменную в ваших условных операторах.

Edit:

Для того, чтобы получить доступ к методу 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 Resource Path \t \t Расположение Тип 1061: призыв к возможно неопределенному методу getChildByName через ссылку со статическим типом flash.display: DisplayObject. \t Start.as \t/eindwerk MA1/src \t line 155 \t Проблема с Flex. Я получаю эту ошибку при назначении переменных – vincent

Смежные вопросы