Well, just for now, how about if I declare the instance vars in  my
swf9-specific branches of  LFC  files as public, to aid in
making a debugger for swf9,  and when we
merge them back with their original .lzs files, we can figure out how
to scope them?




On Mon, Feb 11, 2008 at 9:06 AM, P T Withington <[EMAIL PROTECTED]> wrote:
> I think namespace is the way to go.  The question is whether to do it
>  by hand or in the compiler.  One idea is that when compiling the LFC,
>  everything listed as public is in the lzxapplication namespace and
>  everything else is in the lfc namespace.  Everything is public, just
>  in different namespaces.
>
>  I don't know how it is in AS3, but in JS2, a package is just a way of
>  creating a pair of namespaces: public and private.  So I don't see why
>  you couldn't do the same thing with explicit namespaces.
>
>
>
>  On 2008-02-11, at 08:44 EST, Donald Anderson wrote:
>
>  > I'd hate to change the visibility in the source, someday our js2doc
>  > will want to take full advantage of it, and it's just the right
>  > thing to do.
>  >
>  > One alternative is to have the script compiler strip private, and
>  > add public,
>  > for all vars when compiling in debug mode.  That would be at a risk
>  > of getting
>  > a different behavior (seems unlikely, would require some bad coding
>  > in the LFC).
>  >
>  > Maybe there's some way to leverage namespaces to solve this?
>  >
>  >
>  > On Feb 11, 2008, at 2:50 AM, Henry Minsky wrote:
>  >
>  >> I found out the describeType() function has this restriction:
>  >>
>  >> Note: describeType() only shows public properties and methods, and
>  >> will not show properties and methods that are private, package
>  >> internal or in custom namespaces.
>  >>
>  >>
>  >> So if we want our debugger to really work nicely, I guess we have to
>  >> declare all variables as public on the LFC obejcts...
>  >>
>  >>
>  >>
>  >> ---------- Forwarded message ----------
>  >> From: Henry Minsky <[EMAIL PROTECTED]>
>  >> Date: Tue, Nov 15, 2005 at 2:16 PM
>  >> Subject: interesting introspection API for AS3
>  >> To: Platform Team <[EMAIL PROTECTED]>
>  >>
>  >>
>  >>
>  >> So they have an API for inspecting a sealed class. Haven't seen if
>  >> there is any API for modifying it at runtime though (I am guessing
>  >> not)
>  >>
>  >>
>  >> Using the introspection API
>  >>
>  >> If you want to list all the public properties and methods of a
>  >> non-dynamic (or sealed) class or class instance, use the
>  >> describeType() method and parse the results using the E4X API. The
>  >> describeType() method is in the flash.util package. The method's only
>  >> parameter is the object that you want to introspect. You can pass it
>  >> any ActionScript value, including all available ActionScript types
>  >> such as object instances, primitive types such as uint, and class
>  >> objects. The return value of the describeType() method is an E4X XML
>  >> object containing an XML description of the object's type.
>  >>
>  >> The following example instrospects the Button control and prints the
>  >> details to TextArea controls:
>  >> <?xml version="1.0"?>
>  >> <mx:Application xmlns:mx="http://www.macromedia.com/2005/mxml";
>  >> creationComplete="getDetails()">
>  >>
>  >>
>  >> <mx:Script>
>  >> <![CDATA[
>  >> import flash.util.*;
>  >>
>  >> public function getDetails():Void {
>  >> // Get the Button control's E4X XML object description:
>  >>
>  >> var classInfo:XML = describeType(button1);
>  >>
>  >> // Dump the entire E4X XML object into ta2:
>  >> ta2.text = classInfo.toString();
>  >>
>  >> // List the class name:
>  >>
>  >> ta1.text = "Class " + [EMAIL PROTECTED]() + "\n";
>  >>
>  >> // List the object's variables, their values, and their types:
>  >> for each (var v:XML in classInfo..variable) {
>  >>
>  >> ta1.text += "Variable " + [EMAIL PROTECTED] + "=" + [EMAIL PROTECTED] +
>  >>
>  >> " (" + [EMAIL PROTECTED] + ")\n";
>  >> }
>  >>
>  >> // List accessors as properties:
>  >>
>  >> for each (var a:XML in classInfo..accessor) {
>  >> ta1.text += "Property " + [EMAIL PROTECTED] + "=" + [EMAIL PROTECTED] +
>  >>
>  >> " (" + [EMAIL PROTECTED] +")\n";
>  >>
>  >> }
>  >>
>  >> // List the object's methods:
>  >> for each (var m:XML in classInfo..method) {
>  >> ta1.text += "Method " + [EMAIL PROTECTED] + "():" + [EMAIL PROTECTED] + 
> "\n";
>  >>
>  >> }
>  >> }
>  >> ]]>
>  >> </mx:Script>
>  >>
>  >> <mx:Button label="Submit" id="button1"/>
>  >> <mx:TextArea id="ta1" width="400" height="200" />
>  >>
>  >> <mx:TextArea id="ta2" width="400" height="200" />
>  >>
>  >>
>  >>
>  >>
>  >> --
>  >> Henry Minsky
>  >> Software Architect
>  >> [EMAIL PROTECTED]
>  >>
>  >>
>  >>
>  >>
>  >> --
>  >> Henry Minsky
>  >> Software Architect
>  >> [EMAIL PROTECTED]
>  >
>  >
>  > --
>  >
>  > Don Anderson
>  > Java/C/C++, Berkeley DB, systems consultant
>  >
>  > voice: 617-547-7881
>  > email: [EMAIL PROTECTED]
>  > www: http://www.ddanderson.com
>  >
>  >
>  >
>  >
>
>



-- 
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to