Softimage オブジェクトのクラス名を戻します。戻される名前は、そのオブジェクトがサポートしている
most-derived クラスです。
たとえば、階層情報に表示されているように、ClusterPropertyは、SIObject、ProjectItemおよび、Propertyをサポートします。ClusterProperty
はリストに表示される最後のクラスであるため(leaf または
most-derived)、このメソッドにより戻される名前となります。
このメソッドは、オブジェクトタイプ、およいそのオブジェクトタイプで使用できるオブジェクトモデルメソッドとプロパティを決定する非常に重要なメソッドです。
SIObject.Typeとは異なり、このメソッドはすべてのオブジェクトで使用できます。この中には、SIVector3、ImageおよびPPGのような非
SIObject も含まれています。
このメソッドを呼び出しても、オブジェクトのタイプを区別するのに十分な情報が得られない場合があります。たとえば、ジオメトリ、ラティス、フォースの
ClassName はすべてX3DObjectになります。
このメソッドは、VBScript の TypeName(obj)と同じ情報を戻すので、TypeName
()関数をサポートしていない言語で使用できます。ただし、VBScript の TypeName
()とは異なり、文字列、数値、およびその他の標準日付書式を渡すとこのメソッドは失敗します。このメソッドは実際の Softimage
オブジェクトでしか機能しません。
注:Softimage
の各リリースではオブジェクトモデルに新しいオブジェクトが追加され、それによって新しいクラスが階層に追加されています。このことは、このメソッドによって戻される値が新しい
ClassName を戻し、ハードコーディングされている既存のスクリプトを壊す可能性があります。
oString = Application.ClassName( Object ); |
| パラメータ | タイプ | 詳細 |
|---|---|---|
| オブジェクト | Object | クラス名を述べるオブジェクト |
/*
This example displays the class name of an object
*/
var oObj = ActiveProject.ActiveScene.Root.AddGeometry("Sphere", "NurbsSurface");
LogMessage( "Object typename = " + Application.ClassName(oObj) );
|
#
# This is a basic demonstration using Application.ClassName to
# test the type of an object
#
def IsModel( in_obj ) :
# There are no classes which derive from model so this is
# a safe way to test the object
try:
return ( Application.ClassName( in_obj ) == "Model" )
except:
#Exception will occur if in_obj isn't really an COM object
return False
oSceneRoot = Application.ActiveSceneRoot
oNull = oSceneRoot.AddNull()
oModel = oSceneRoot.AddModel()
# This is a model (prints "True")
Application.LogMessage( IsModel( oSceneRoot ) )
Application.LogMessage( IsModel( oModel ) )
# These are not models (prints "False")
Application.LogMessage( IsModel( Application ) )
Application.LogMessage( IsModel( oNull ) )
# These are not even Softimage objects (prints "False")
Application.LogMessage( IsModel( "not even an object" ) )
Application.LogMessage( IsModel( 22 ) )
|