包flash.sampler
类public final class NewObjectSample
继承NewObjectSample Inheritance Sample Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.0.115.0

NewObjectSample 类表示在 getSamples() 流中创建的对象。仅适用于 Flash Player 调试版。

查看示例

另请参见

flash.sampler.getSamples()
How the Flex profiler works


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  object : *
[只读 (read-only)] NewObjectSample 对象(如果仍存在)。
NewObjectSample
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
公共常量
 常量定义方
  id : Number
与 DeleteObjectSample 的标识号相匹配的唯一标识号。
NewObjectSample
 Inheritedstack : Array
包含 Flash Player 在指定时段执行的方法的相关信息。
Sample
 Inheritedtime : Number
定义 Sample 实例持续时间的微秒数。
Sample
  type : Class
与 getSamples() 流中创建的对象相对应的 Class 对象。
NewObjectSample
属性详细信息
object属性
object:*  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.0.115.0

NewObjectSample 对象(如果仍存在)。如果已将该对象作为垃圾回收,则此属性是未定义的并存在对应的 DeleteObjectSample。仅适用于 Flash Player 调试版。



实现
    public function get object():*

另请参见

常量详细信息
id常量
public const id:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.0.115.0

与 DeleteObjectSample 的标识号相匹配的唯一标识号。仅适用于 Flash Player 调试版。

另请参见

type常量 
public const type:Class

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.0.115.0

与 getSamples() 流中创建的对象相对应的 Class 对象。仅适用于 Flash Player 调试版。

示例 如何使用示例
SampleTypesExample.as

下面的示例使用 Sample 对象 s 的 stack 和 time 属性来收集内存样本。该样本包含 NewObjectSample 对象(newSamples 数组)、DeleteObjectSample 对象(delSamples 数组)和 CPU 内存样本对象(cpuSamples 数组)。若要使用内存设置,需要安装 Flash Player 调试版 9.0.115.0 或更高版本。
package 
{
    import flash.sampler.*
    import flash.system.*
    import flash.utils.*
    import flash.display.Sprite
    public class sampleTypes extends Sprite
    {
      var b:Boolean = true
        public function sampleTypes() {
            flash.sampler.startSampling();
            for(var i:int=0;i<10000;i++)
              new Object();

            var cpuSamples:Array=[];
            var newSamples:Array=[];
            var delSamples:Array=[];
            var ids:Array=[]

            var lastTime:Number=0;
            for each(var s:Sample in getSamples()) {
              
              assert(s.time > 0); // positive
              assert(Math.floor(s.time) == s.time, s.time); // integral
              assert(s.time >= lastTime, s.time + ":" + lastTime); // ascending
              assert(s.stack == null || s.stack is Array)
              if(s.stack) {
                assert(s.stack[0] is StackFrame);
                assert(s.stack[0].name is String);
            }
              
              if(s is NewObjectSample) {
                var nos = NewObjectSample(s);
                assert(s.id > 0, s.id);
                assert(s.type is Class, getQualifiedClassName(s.type));
                newSamples.push(s);
                ids[s.id] = "got one";
              } else if(s is DeleteObjectSample) {
                var dos = DeleteObjectSample(s);
                delSamples.push(s);
                assert(ids[dos.id] == "got one");
              } else if(s is Sample)
                cpuSamples.push(s);
              else {
                assert(false);
              }
              lastTime = s.time;
            }

            trace(b)
            trace(newSamples.length > 0)
            trace(cpuSamples.length > 0)
            trace(delSamples.length > 0)

        }

        private function assert(e:Boolean, mess:String=null):void {
          b = e && b;
          if(true && !e) {
            if(mess) trace(mess);
            trace(new Error().getStackTrace());
          }     
        }         
    }
}