sgzwiz / maashaack

Automatically exported from code.google.com/p/maashaack
0 stars 1 forks source link

improve dump functions in core #205

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
in case where the class/object to dump is a native class in the FPAPI
most of the time the instance resolve to "Object" and return an empty "{ }"

for ex:

var r:Rectangle = new Rectangle( 0, 0, 20, 20 );

trace( dump( r ) ); //output: "{ }"

it would be nice in those cases to be able to add custom toSource serializer

for ex:
var toSourceRectangle = function( r:Rectangle ):String
{
    var args:Array = [ r.x, r.y, r.width, r.height ];
    return "new Rectangle( " + args.join(", " ) + " );";
}

Original issue reported on code.google.com by zwetan on 13 May 2013 at 7:42

GoogleCodeExporter commented 9 years ago
even better, let's use a bit of reflection fun ;)

for ex:

var r:Rectangle = new Rectangle( 0, 1, 2, 3 );

var _class:XML = describeType( Rectangle );
----
<type name="flash.geom::Rectangle" base="Class" isDynamic="true" isFinal="true" 
isStatic="true">
  <extendsClass type="Class"/>
  <extendsClass type="Object"/>
  <accessor name="prototype" access="readonly" type="*" declaredBy="Class"/>
  <factory type="flash.geom::Rectangle">
    <extendsClass type="Object"/>
    <constructor>
      <parameter index="1" type="Number" optional="true"/>
      <parameter index="2" type="Number" optional="true"/>
      <parameter index="3" type="Number" optional="true"/>
      <parameter index="4" type="Number" optional="true"/>
    </constructor>
    <variable name="x" type="Number"/>
    <variable name="y" type="Number"/>
    <variable name="width" type="Number"/>
    <variable name="height" type="Number"/>
...
----

var _class:XML = describeType( r );
----
<type name="flash.geom::Rectangle" base="Object" isDynamic="false" 
isFinal="false" isStatic="false">
  <extendsClass type="Object"/>
  <constructor>
    <parameter index="1" type="Number" optional="true"/>
    <parameter index="2" type="Number" optional="true"/>
    <parameter index="3" type="Number" optional="true"/>
    <parameter index="4" type="Number" optional="true"/>
  </constructor>
  <variable name="x" type="Number"/>
  <variable name="y" type="Number"/>
  <variable name="width" type="Number"/>
  <variable name="height" type="Number"/>
...
----

eg.
we can find out the class name, the number of args in the ctor, if they are 
optional or not, etc.

Original comment by zwetan on 13 May 2013 at 7:52