v6.0
選択されているキーと各 FCurve オブジェクトを含む FCurveCollection を戻します。選択されているキーは、Selection上の各F カーブのFCurve.SelectedKeysを呼び出すことで取得できます。
// get accessor FCurveCollection rtn = XSIApplication.FCurveSelection; |
/*
This example illustrates how to get the fcurve key selection
*/
// Create a new scene
NewScene(null, false);
// Create a null
oNull = Application.GetPrim("Null");
// Get the posx parameter of the null
oPosX = oNull.posx
// Create array of time-value pairs
aKeys = new Array( 0.00, 5.00,
1.00, 6.00,
2.00, 7.00,
3.00, 8.00,
4.00, 9.00,
5.00, 10.00 );
// Create an empty FCurve
oFCurve = oPosX.AddFCurve2( null, siStandardFCurve );
// Set the fcurve keys
oFCurve.SetKeys( aKeys );
// Select some keys
SelectKeysInTimespan(oPosX, siSetKeySelection, 2, 4, siInputParameters);
// Get selected fcurves
oFCurves = Application.FCurveSelection;
// Print selected key information
for (var i=0; i<oFCurves.Count; i++) {
var keys = oFCurves(i).SelectedKeys;
var msg = 'FCurve ' + i + ' has ' + keys.count + ' keys selected';
if (keys.Count > 0) {
msg += ' at frames: [';
for (var j = 0; j < keys.Count; j++) {
if ( j > 0 ) { msg += ', '; }
msg += keys(j).Time;
}
msg += ']';
}
Application.LogMessage( msg, siInfo );
}
// Produces the following output:
//
//INFO : FCurve 0 has 3 keys selected at frames: [2, 3, 4] |