ActionSource.Reload

Introduced

v4.0

Description

Reloads the action source. This method is useful when you want to find externally stored action sources that have become disconnected from a clip.

You can also use this method to reload a source which has been offloaded. If the source has external storage and the file is valid, the source removes all current AnimationSourceItems and reloads them from the source file.

Reloading the source disconnects all action Clips that use this source and reconnects them (this happens even if the source is stored internally or if the file is invalid). Once the paths are updated, reloading the source reconnects everything correctly.

C# Syntax

ActionSource.Reload();

Scripting Syntax

ActionSource.Reload();

Examples

JScript Example

/*

	This example illustrates how to use the Reload method on an ActionSource

*/

NewScene( null, false );

var oRoot = Application.ActiveProject.ActiveScene.Root;

// Create a new model and add a null under it

var oModel = oRoot.AddModel();

oModel.Parameters("Name").Value = "ActionModel";

var oNull = oModel.AddNull();

// These commands were cut-and-pasted from scripting history and modified to work in a

// script. They create a simple actionsource from animation on the null's position

strPosParams = oNull + ".kine.local.posx," + oNull + ".kine.local.posy," + oNull + ".kine.local.posz";

Translate( oNull, -8.153, 7.015, -0.702, siRelative, siView, siObj, siXYZ );

SaveKey( strPosParams, 1.000 );

Translate( oNull, 8.350, -8.935, 0.894, siRelative, siView, siObj, siXYZ );

SaveKey( strPosParams, 50.000 );

Translate( oNull, 9.413, 8.935, -0.894, siRelative, siView, siObj, siXYZ );

SaveKey( strPosParams, 100.000 );

// Create a new ActionSource based on the null's translation

var oActionSource = oModel.AddActionSource( "MyActionSource" );

// Use the fcurves on the null object to create the actionsource items

var oPosx = oNull.Posx;

var oPosy = oNull.Posy;

var oPosz = oNull.Posz;

oActionSource.AddSourceItem( GetRelativeName(oPosx), oPosx.Source );

oActionSource.AddSourceItem( GetRelativeName(oPosy), oPosy.Source );

oActionSource.AddSourceItem( GetRelativeName(oPosz), oPosz.Source );

// Set the action storage to external (text)

oActionSource.Parameters( "storage" ).Value = 2; 	// equivalent to: SetValue( oActionSource + ".storage", 2 );

// Add a clip for the source

AddClip( oModel, oActionSource, "", "", 16, "", "", "", false );

// Save the scene, in order to save the action externally

var sSavePath = XSIUtils.BuildPath( Application.InstallationPath(siProjectPath), "Scenes", "ASTestScene.scn" );

SaveSceneAs( sSavePath, true );

// So, calling Reload on the source will disconnect the source, reload the action and reconnect the source.

oActionSource.Reload();

/* 

	GetRelativeName removes the name of the model from the FullName 

	of the specified parameter. This is necessary when setting up a source 

	that will later be used to instantiate a clip when the parameter lives 

	under a model other than the Scene_Root.

*/

function GetRelativeName( in_param )

{

	var mdlname = in_param.Model.FullName;

	if ( mdlname == "Scene_Root" ) {

		return in_param.FullName;

	} else {

		var tmp = in_param.FullName;

		var re = new RegExp( mdlname + ".", "i" );

		return tmp.replace( re, "" );

	}

}

//