Как удалить предыдущий SWF при вводе нового SWF (AS3) ......? - PullRequest
1 голос
/ 14 декабря 2010

Я создаю двойные викторины с 3 файлами SWF (main.swf, A.swf, B.swf), когда я загружаю их из Main.swf в другой пример SWF в (B.swf) и перезагружаю обратно в Main.SWF снова, он прекрасно работает без ошибок ... но когда этот процесс продолжает зацикливаться, это похоже на спам использование памяти процессора ... какую кодировку я должен был использовать для ее решения?(** Я думаю, потому что память предыдущего SWF-файла не полностью удаляется при вводе другого SWF, новый SWF просто заменяет сверху) (Я использовал .unload (), removeChild (), stop (), и так далее, кажется, не решает эту проблему..я сделал все возможное, чтобы решить, но потерпел неудачу) Я думаю, что некоторые коды, используемые для решения этой проблемы, я не знаю, что еще. Может дать мне небольшие решения?

Ваша доброта будет очень признателен :) Спасибо

1 Ответ

1 голос
/ 14 декабря 2010

Вам не нужно перезагружать каждый SWF в цикле!Вместо этого назначьте переменную загруженному SWF и используйте эту переменную для взаимодействия с SWF.

  private var swfA:MovieClip;

  private function onLoadComplete( event:Event ):void
  {
       //if you've loaded A.swf
       swfA = event.currentTarget.content;
  }

С этого момента вы можете:

  //hide the swf
  swfA.visible = false;

  //remove it from stage
  removeChild( swfA );

И если вы связали егов своем собственном классе, вы даже можете вызывать методы или устанавливать свойства

  //for instance...
  swfA.answers = [ answer1 , answer2 .... , answern]; 
  swfA.showResult();    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...