0
我創建了一個包含舞臺上所有影片剪輯的類。這些變量指的是舞臺上的實例名稱。只要我將所有的功能都保存在一個類中,一切似乎都很好。但是,當我嘗試使用另一個類來管理影片剪輯的屬性時,我遇到了資源清理問題。(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中所示的分配=夾子我想通過引用傳遞這部電影由容器類使用,但我相信垃圾收集越來越迷茫的時候有兩個引用到相同的影片剪輯。有沒有一種方法可以使它不再需要這個參考。
//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中文件中,但我覺得我用它不正確,或者說,它並不適用於我的情況。
我想我的問題可能有點混亂,我會更新它。然而,這部分內容很有意思......「你可能會遇到一些問題,那些沒有附加到舞臺上的課程不能識別舞臺,也不能從該課堂上的舞臺上移除物品。」是否需要在舞臺上附加外部類來調用清理功能? – Lockyer 2010-11-04 05:26:22
是的,你可以刪除在MainScreen.as中創建的對象實例,但由於MainScreen是我假設的與舞臺直接接觸的一個文檔類,因此可以從那裏引用舞臺。對不起,如果我誤解了你的問題,我會盡力幫助你,當你更新它 – Kobby 2010-11-04 05:40:46
不,對不起。我相信我遇到的麻煩是當MainScreen終止時MovieClip的實例留在內存中。我理解面向對象編程的原理,我對動作特定的內存分配和清理感到困惑。 – Lockyer 2010-11-04 16:24:06