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。这可以在几分钟内实现,但需要在整个应用程序中使用。

相关问题