Home > Archives > 2008-11-04

2008-11-04

ObjectUtil.getClassInfo - Flex

ActionScriptでクラスの情報を得るには、flash.utils.describeTypeメソッドを使いますが、Flexの場合だと、mx.utils.ObjectUtilgetClassInfoメソッドでも簡易情報を取得できます。

前回のヒルベルト曲線のクラスをdescribeTypeとObjectUtil.getClassInfoの2つのメソッドでクラス情報を取得してみると、

describeType()

<type name="Hilbert" base="flash.display::Shape" isDynamic="false" isFinal="false" isStatic="false">
  <extendsClass type="flash.display::Shape"/>
  <extendsClass type="flash.display::DisplayObject"/>
  <extendsClass type="flash.events::EventDispatcher"/>
  <extendsClass type="Object"/>
  <implementsInterface type="flash.display::IBitmapDrawable"/>
  <implementsInterface type="flash.events::IEventDispatcher"/>
  <constructor>
    <parameter index="1" type="int" optional="false"/>
    <parameter index="2" type="uint" optional="false"/>
  </constructor>
  <variable name="data" type="__AS3__.vec::Vector.&lt;Number>"/>
  <accessor name="graphics" access="readonly" type="flash.display::Graphics" declaredBy="flash.display::Shape"/>
  <accessor name="scaleZ" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <accessor name="accessibilityProperties" access="readwrite" type="flash.accessibility::AccessibilityProperties" declaredBy="flash.display::DisplayObject"/>
  <accessor name="scrollRect" access="readwrite" type="flash.geom::Rectangle" declaredBy="flash.display::DisplayObject"/>
  <accessor name="rotationZ" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <accessor name="height" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <method name="getBounds" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Rectangle">
    <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
  </method>
  <accessor name="blendShader" access="writeonly" type="flash.display::Shader" declaredBy="flash.display::DisplayObject"/>
  <accessor name="opaqueBackground" access="readwrite" type="Object" declaredBy="flash.display::DisplayObject"/>
  <accessor name="alpha" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <accessor name="cacheAsBitmap" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObject"/>
  <method name="local3DToGlobal" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Point">
    <parameter index="1" type="flash.geom::Vector3D" optional="false"/>
  </method>
  <accessor name="x" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <accessor name="visible" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObject"/>
  <accessor name="y" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <accessor name="scaleX" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <method name="globalToLocal3D" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Vector3D">
    <parameter index="1" type="flash.geom::Point" optional="false"/>
  </method>
  <accessor name="mouseX" access="readonly" type="Number" declaredBy="flash.display::DisplayObject"/>
  <method name="hitTestPoint" declaredBy="flash.display::DisplayObject" returnType="Boolean">
    <parameter index="1" type="Number" optional="false"/>
    <parameter index="2" type="Number" optional="false"/>
    <parameter index="3" type="Boolean" optional="true"/>
  </method>
  <accessor name="scaleY" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <accessor name="z" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <accessor name="mouseY" access="readonly" type="Number" declaredBy="flash.display::DisplayObject"/>
  <accessor name="parent" access="readonly" type="flash.display::DisplayObjectContainer" declaredBy="flash.display::DisplayObject"/>
  <accessor name="mask" access="readwrite" type="flash.display::DisplayObject" declaredBy="flash.display::DisplayObject"/>
  <method name="getRect" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Rectangle">
    <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
  </method>
  <accessor name="rotation" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <accessor name="width" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <method name="localToGlobal" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Point">
    <parameter index="1" type="flash.geom::Point" optional="false"/>
  </method>
  <method name="globalToLocal" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Point">
    <parameter index="1" type="flash.geom::Point" optional="false"/>
  </method>
  <accessor name="transform" access="readwrite" type="flash.geom::Transform" declaredBy="flash.display::DisplayObject"/>
  <accessor name="blendMode" access="readwrite" type="String" declaredBy="flash.display::DisplayObject"/>
  <accessor name="root" access="readonly" type="flash.display::DisplayObject" declaredBy="flash.display::DisplayObject"/>
  <accessor name="name" access="readwrite" type="String" declaredBy="flash.display::DisplayObject"/>
  <accessor name="loaderInfo" access="readonly" type="flash.display::LoaderInfo" declaredBy="flash.display::DisplayObject"/>
  <accessor name="scale9Grid" access="readwrite" type="flash.geom::Rectangle" declaredBy="flash.display::DisplayObject"/>
  <accessor name="filters" access="readwrite" type="Array" declaredBy="flash.display::DisplayObject"/>
  <accessor name="rotationX" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <method name="hitTestObject" declaredBy="flash.display::DisplayObject" returnType="Boolean">
    <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
  </method>
  <accessor name="stage" access="readonly" type="flash.display::Stage" declaredBy="flash.display::DisplayObject"/>
  <accessor name="rotationY" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
  <method name="toString" declaredBy="flash.events::EventDispatcher" returnType="String"/>
  <method name="addEventListener" declaredBy="flash.events::EventDispatcher" returnType="void">
    <parameter index="1" type="String" optional="false"/>
    <parameter index="2" type="Function" optional="false"/>
    <parameter index="3" type="Boolean" optional="true"/>
    <parameter index="4" type="int" optional="true"/>
    <parameter index="5" type="Boolean" optional="true"/>
  </method>
  <method name="hasEventListener" declaredBy="flash.events::EventDispatcher" returnType="Boolean">
    <parameter index="1" type="String" optional="false"/>
  </method>
  <method name="dispatchEvent" declaredBy="flash.events::EventDispatcher" returnType="Boolean">
    <parameter index="1" type="flash.events::Event" optional="false"/>
  </method>
  <method name="removeEventListener" declaredBy="flash.events::EventDispatcher" returnType="void">
    <parameter index="1" type="String" optional="false"/>
    <parameter index="2" type="Function" optional="false"/>
    <parameter index="3" type="Boolean" optional="true"/>
  </method>
  <method name="willTrigger" declaredBy="flash.events::EventDispatcher" returnType="Boolean">
    <parameter index="1" type="String" optional="false"/>
  </method>
</type>

ObjectUtil.getClassInfo()

(Object)#0
  alias = ""
  dynamic = false
  metadata = (null)
  name = "Hilbert"
  properties = (Array)#1
    [0] (QName)#2
      localName = "accessibilityProperties"
      uri = ""
    [1] (QName)#3
      localName = "alpha"
      uri = ""
    [2] (QName)#4
      localName = "blendMode"
      uri = ""
    [3] (QName)#5
      localName = "cacheAsBitmap"
      uri = ""
    [4] (QName)#6
      localName = "filters"
      uri = ""
    [5] (QName)#7
      localName = "graphics"
      uri = ""
    [6] (QName)#8
      localName = "height"
      uri = ""
    [7] (QName)#9
      localName = "loaderInfo"
      uri = ""
    [8] (QName)#10
      localName = "mask"
      uri = ""
    [9] (QName)#11
      localName = "mouseX"
      uri = ""
    [10] (QName)#12
      localName = "mouseY"
      uri = ""
    [11] (QName)#13
      localName = "name"
      uri = ""
    [12] (QName)#14
      localName = "opaqueBackground"
      uri = ""
    [13] (QName)#15
      localName = "parent"
      uri = ""
    [14] (QName)#16
      localName = "root"
      uri = ""
    [15] (QName)#17
      localName = "rotation"
      uri = ""
    [16] (QName)#18
      localName = "rotationX"
      uri = ""
    [17] (QName)#19
      localName = "rotationY"
      uri = ""
    [18] (QName)#20
      localName = "rotationZ"
      uri = ""
    [19] (QName)#21
      localName = "scale9Grid"
      uri = ""
    [20] (QName)#22
      localName = "scaleX"
      uri = ""
    [21] (QName)#23
      localName = "scaleY"
      uri = ""
    [22] (QName)#24
      localName = "scaleZ"
      uri = ""
    [23] (QName)#25
      localName = "scrollRect"
      uri = ""
    [24] (QName)#26
      localName = "stage"
      uri = ""
    [25] (QName)#27
      localName = "transform"
      uri = ""
    [26] (QName)#28
      localName = "visible"
      uri = ""
    [27] (QName)#29
      localName = "width"
      uri = ""
    [28] (QName)#30
      localName = "x"
      uri = ""
    [29] (QName)#31
      localName = "y"
      uri = ""
    [30] (QName)#32
      localName = "z"
      uri = ""

どうやらgetClassInfo()ではパブリックプロパティのQNameが返ってくるようです。
AS3.0の場合だとE4Xがあるので、describeType()の方がまだ使えますね。
getClassInfo()の方はどういうときに便利に利用できるのか思いつきません。。

Home > Archives > 2008-11-04

Meta

Return to page top