(Actionscript 2.0) Передача мувиклипа во внешний скрипт. Как убирать - PullRequest
0 голосов
/ 04 ноября 2010

Я создал класс, который содержит все фрагменты фильмов со сцены.Эти переменные ссылаются на имя экземпляра на сцене.Кажется, все хорошо, пока я храню все свои функциональные возможности в одном классе.Однако, когда я пытаюсь использовать другой класс для управления свойствами фрагмента ролика, у меня возникают проблемы с очисткой ресурса.

//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 = clip Я хочу передать этот фильм по ссылке, который будет использоваться классом 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 () в документации по ActionScript 2.0, но я думаю, что я использую его неправильно или что это не относится к моей ситуации.

1 Ответ

0 голосов
/ 04 ноября 2010

если вы звоните container.CleanUpMess();, вам не нужно ничего настраивать в этом классе, если это не входит в функцию CleanUpMess() в файле класса.метод CleanUpMess() находится в классе и поэтому имеет доступ к мувиклипу, который вы передали методу конструктора.Вы должны иметь возможность просто вызвать переменную мувиклипа в файле класса и изменить ее свойства оттуда.

ex:

public function CleanUpMess()
{
mClip.x = 10;
mClip.y = 30;
}

это помогает вообще?

...