## FCurve.GetNumKeys

### Introduced

v3.0

### Description

Returns the number of keys within the interval defined by the StartFrame and EndFrame. The default interval is the entire fcurve.

### C# Syntax

    Int32 FCurve.GetNumKeys( Object in_StartFrame, Object in_EndFrame );

### Scripting Syntax

    oLong = FCurve.GetNumKeys( [StartFrame], [EndFrame] );

### Return Value

Long

### Parameters

Parameter | Type | Description
--- | --- | ---
StartFrame | Variant | The start time in frames of the interval. Default Value: The frame of the first key
EndFrame | Variant | The end time in frames of the interval. Default Value: The frame of the last key

### Examples

#### JScript Example

    /*
            This JScript example illustrates how to use the FCurve.GetNumKeys method
            to determine the number of keys within a specified interval.
    */
    // Create a null
    Application.NewScene( null, false );
    var nullobj = ActiveSceneRoot.AddNull();
    // Create an fcurve on the posx parameter from the null
    var fc = nullobj.posx.AddFCurve()
    // Define some random keys
    var nbkeys = Math.round( Math.random() * 200 );
    var arraysize = nbkeys * 2;
    var keys = new Array( 2 * nbkeys );
    var i = 0;
    var offset = -50;
    for ( i=0; i<arraysize; i+=2 )
    {
            keys[i] = Math.round( offset + Math.random( ) * 100 );
            keys[i+1] = offset + Math.random() * 100;
    }
    // Set the keys on the fcurve
    fc.SetKeys( keys );
    LogMessage( "total number of keys = " + fc.GetNumKeys() );
    // For each 10 frames determine how many keys are in the interval
    var frame, nextframe, endframe, offset;
    frame = fc.GetKeyFrame(0);
    endframe = fc.GetKeyFrame( fc.GetNumKeys() - 1 );
    offset = 10;
    while ( frame < endframe )
    {
            nextframe = frame + offset;
            var ckeys = fc.GetNumKeys( frame, nextframe );
            if ( ckeys > 1 )
            {
                    LogMessage( ckeys + " keys between frames " + frame + " and " + nextframe );
            }
            frame = nextframe;
    }
    // Output:
    //INFO : total number of keys = 78
    //INFO : 10 keys between frames -50 and -40
    //INFO : 6 keys between frames -40 and -30
    //INFO : 9 keys between frames -30 and -20
    //INFO : 6 keys between frames -20 and -10
    //INFO : 9 keys between frames -10 and 0
    //INFO : 10 keys between frames 0 and 10
    //INFO : 9 keys between frames 10 and 20
    //INFO : 7 keys between frames 20 and 30
    //INFO : 11 keys between frames 30 and 40
    //INFO : 8 keys between frames 40 and 50

### See Also

FCurve.Keys