我创建了一个包含舞台上所有影片剪辑的类。这些变量指的是舞台上的实例名称。只要我将所有功能保存在一个类中,一切似乎都很好。但是,当我尝试使用另一个类来管理影片剪辑的属性时,我遇到了资源清理问题。
//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(),但我认为我使用的不正确,或者它不适用于我的情况。
答案 0 :(得分:0)
如果你正在调用container.CleanUpMess();
,除非它不在类文件中的CleanUpMess()
函数内,否则你不需要在该类中设置任何其他内容。 CleanUpMess()
方法在类中,因此可以访问传递给构造函数方法的movieclip。您应该能够在类文件中调用影片剪辑变量并从那里更改其属性。
例如:
public function CleanUpMess()
{
mClip.x = 10;
mClip.y = 30;
}
这有帮助吗?