Я создал класс, содержащий все видеоклипы со сцены. Эти переменные ссылаются на имя экземпляра на сцене. Все кажется прекрасным, пока я сохраняю все свои функции в одном классе. Однако, когда я пытаюсь использовать другой класс для управления свойствами клипа, я сталкиваюсь с проблемами очистки ресурсов.(Actionscript 2.0) Передача MovieClip во внешний скрипт. Как очистить
//File (MainScreen.as)
import utils.Container;
class MainScreen extends MovieClip
{
private var clip1:MovieClip;
private var clip2:MovieClip;
private var container:Container
public function MainScreen()
{
container = new Container(clip1);
}
public function CleanUpMess()
{
container.CleanUpMess(); // <-- This part seems fine
//? <-- Should I be calling other things here?
}
}
Я считаю, что это связано с назначением, показанной ниже mClip = клип Я хочу передать этот фильм по ссылке для использования класса Container, но я считаю, что сборщик мусора путаться, когда есть две ссылки к тому же MovieClip. Есть ли способ, которым я могу дать ему удар, что эта ссылка больше не нужна.
//File (Container.as)
class utils.Container
{
private var mClip:MovieClip;
public function Container(clip:MovieClip)
{
mClip = clip;
}
public function CleanUpMess()
{
mClip.removeMovieClip(); // <--- Doesn't seem to work
removeMovieClip(mClip); // <--- Doesn't seem to work
}
}
Я нашел MovieClip.removeMovieClip() в 2.0 документации Actionscript, но я думаю, что я использую это неправильно, или что это не относится к моей ситуации.
Я думаю, что мой вопрос, возможно, был немного запутанным, я обновлю его. Однако эта часть интересна ... «у вас могут возникать проблемы, когда класс, который не подключен к стадии, не распознает сцену, и вы не можете удалять элементы со сцены из этого пользовательского класса». следует ли подключать внешние классы к стадии для вызова функций очистки? – Lockyer
Да, вы можете удалять экземпляры объектов класса, созданного в вашем MainScreen.as, но так как MainScreen - это один класс документа, который я предполагаю при непосредственном контакте со сценой, вы можете ссылаться на сцену. И извините, если я неправильно понял ваш вопрос, я постараюсь вам помочь, когда вы его обновите. – Kobby
Нет, извините. Я верю, что у меня возникают проблемы с экземплярами MovieClips, которые остаются в памяти при завершении MainScreen. Я понимаю принципы объектно-ориентированного программирования, я путаюсь о распределении и очистке памяти для пользовательского скрипта. – Lockyer