I guess I can have a statement at the start of the LzApplication main class,
that just makes a list of all the
LFC classes that have LZX tag names, and that will force them to be loaded.

On Jan 9, 2008 10:33 AM, Henry Minsky <[EMAIL PROTECTED]> wrote:

> Interesting... LzNode looks at the ConstructorMap *before* it creates an
> LzText, so that would
> explain why it isn't there  yet. Given this behavior, anyone have any
> suggestions as to how to build
> the constructormap table in the distributed way we're doing it currently?.
>
>
> For now, I'm just going to hardcode the whole table  into the Laszlo
> application startup class I'm building.
>
>
>
>
> On Jan 9, 2008 10:29 AM, Donald Anderson < [EMAIL PROTECTED]> wrote:
>
> > Henry,
> > At the time you have looked at ConstructorMap, have you
> > already created a LzText object?  If not, maybe it's doing
> > lazy creation of the classes - I know that Java does this -
> > static initializers and blocks don't occur until the class is
> > loaded, and a class may not be loaded until some code executes
> > that either creates an object of that type or references a static
> > method/var.
> >
> > On Jan 9, 2008, at 9:59 AM, Henry Minsky wrote:
> >
> >
> > In one of the LFC files I declare a global
> >
> > var ConstructorMap = {};
> >
> > which gets turned into it's own declaration  file by the script compiler
> >
> >
> > ConstructorMap.as:
> >
> > package {
> >   public var ConstructorMap = {};
> > }
> >
> >
> > In each LFC file I have a statement to add a tag to this global
> >
> >
> > dynamic class LzView extends LzNode {
> >     static var tagname = 'view';
> >     ConstructorMap[tagname] = LzView;
> >
> >
> > dynamic class LzAnimator extends LzAnimatorGroup {
> >   static var tagname = 'animator';
> >   ConstructorMap[tagname] = LzAnimator;
> >
> >
> > dynamic class LzText extends LzView  {
> >     static var tagname = 'text';
> >     ConstructorMap[tagname] = LzText;
> >
> > But when the system is running, there is no entry in
> > ConstructorMap['text'], in fact
> > the only entries in the ConstructorMap are
> >
> >   view: [class LzView], node: [class LzNode], canvas: [class LzCanvas],
> >
> > missing are animator, layout, animatorgroup, text
> >
> > So I'm wondering is there some arbitrary ordering issue where some of
> > the
> > classes are executing the "ConstructorMap[foo] = bar" before
> > ConstructorMap
> > actually gets initialized, and silently failing, or what? I can't figure
> > out if this is a compiler bug in Flex or if I'm doing something wrong.
> > According to
> > the AS3 docs, statements at the top level of a class declaration get
> > executed once
> > when the class is defined. But I am wondering how that interacts with
> > global var initializations,
> > maybe the order is arbitrary?
> >
> >
> >
> >
> >
> > --
> > 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]
>
>


-- 
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to