flash.sampler
public class Sample
继承Sample Inheritance Object
子类 DeleteObjectSample, NewObjectSample

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

Sample 类创建一些对象,它们保存不同时段的内存分析信息。仅适用于 Flash Player 调试版。

查看示例

另请参见

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


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
公共常量
 常量定义方
  stack : Array
包含 Flash Player 在指定时段执行的方法的相关信息。
Sample
  time : Number
定义 Sample 实例持续时间的微秒数。
Sample
常量详细信息
stack常量
public const stack:Array

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

包含 Flash Player 在指定时段执行的方法的相关信息。堆栈跟踪的格式与 Flash Player 调试版的异常对话框中显示的内容类似。仅适用于 Flash Player 调试版。

time常量 
public const time:Number

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

定义 Sample 实例持续时间的微秒数。仅适用于 Flash Player 调试版。

示例 如何使用示例
SampleTypesExample.as

下面的示例使用 Sample 对象 sstacktime 属性来收集内存样本。该样本包含 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());
          }     
        }         
    }
}