(Actionscript 2.0)将MovieClip传递给外部脚本。如何清理

时间:2010-11-04 05:06:11

标签: flash actionscript actionscript-2 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 = 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
    }
}

我在Actionscript 2.0文档中找到了 MovieClip.removeMovieClip(),但我认为我使用的不正确,或者它不适用于我的情况。

1 个答案:

答案 0 :(得分:0)

如果你正在调用container.CleanUpMess();,除非它不在类文件中的CleanUpMess()函数内,否则你不需要在该类中设置任何其他内容。 CleanUpMess()方法在类中,因此可以访问传递给构造函数方法的movieclip。您应该能够在类文件中调用影片剪辑变量并从那里更改其属性。

例如:

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

这有帮助吗?