2012-06-11 108 views
1

Flash組件(或一般鏈接到MovieClip的Actionscript類)是否有任何方法檢查或返回自己的使用計數?我對AS2和AS3的答案感興趣。Flash組件可以檢查自己的使用次數嗎?

+2

在AS3中創建一個單例類,在其中放置一個計數器。在AS2以及繼續前進的時候。 –

回答

3

我不認爲有已建成的任何東西,但你可以很容易地像一個靜止無功實現這一目標:

public class MyClass 
{ 
    private static var classCreationCount:int = 0; 
    public function MyClass() 
    { 
     classCreationCount++; 
    } 
    public static function getClassCreationCount():int 
    { 
     return classCreationCount; 
    } 
} 
+2

這不是一個使用計數,它是一個實例化計數。計數用途意味着計算一個實例被另一個類保留的次數 - 並且沒有辦法跟蹤它,除非每次分配一個變量時手動增加一個計數器,並且當它設置爲null時減少計數器'。 – weltraumpirat

+1

好吧@weltraumpirat我會同意這不是一個使用計數的多少個類仍然是「活動」實例總圖的一部分,但大多數情況下,這應該實現目標,否則唯一的我能想到的是,1一些分析器,或者2,如果你對附加到顯示樹的項目感興趣然後遍歷它並查找每個對象是否是WhateverClass。這似乎是OP正在尋找的東西。 – shaunhusain

+2

如果它是一個Display類,它可以在從舞臺移除時遞減計數器。在這種情況下,可能應該將增量移到添加階段。 –

0

(ActionScript 3的唯一的)另一種可能性是,使用字典與弱引用鍵在運行時跟蹤引用/保留的對象。通過檢查字典中的哪個實例,你會得到一個大概的想法,發生了什麼。但這是一個非確定性的方法,因爲你永遠不知道垃圾收集何時運行。

另一個想法是ObjectPool。這可以在幾分鐘內實現,但需要在整個應用程序中使用。

相關問題