2013-04-24 2 views
0

да, я знаю, что этот вопрос задается все время, но моя неопытность мешает мне найти ответ. Я просто пытаюсь удалить объект с экрана, если кнопка нажата -Поставляемый DisplayObject должен быть дочерним по отношению к вызывающему абоненту

public function but1click(evtObj:MouseEvent) 
    { 
     trace("button one clicked"); 
     if (gracestate == "grace") 
     { 
      removeChild(grace); 
     trace("grace removed"); 
       } 
    } 

Я проследил родитель объекта (благодать), и он вернулся в нуле. Это сводит меня с ума, и помощь будет очень признательна!

ответ

0

Вопрос неясен, хотя наиболее вероятная проблема заключается в том, что вы храните значение в грации, которая собирает/удаляет мусор.

Если вы создаете переменную внутри функции, но никакая ссылка на эту переменную не существует вне функции, она будет GC'd. В принципе все, что не упоминается чем-то другим, удаляется, единственным объектом, для которого это не верно, является временная шкала. Это останавливает отставание проигрывателя Flash Player и позволяет избежать ошибок при заполнении ОЗУ. Таким образом:

function createGrace() { 
     var grace = new Object(); 
     addChild(grace); 
    } 
    trace (grace); // returns null 

    var grace:Object; 
    function createGrace() { 
     grace = new Object(); 
     addChild(grace); 
    } 
    trace (grace); // returns [Object] 
Смежные вопросы

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