Great news!
Paul
----- Original Message -----
From: Merrill, Jason
To: [email protected]
Sent: Thursday, January 24, 2008 11:10 PM
Subject: RE: [flexcoders] chicken and egg object instatiation
Hey Paul, I thought some more about the main atom having no parent, and while
I did make the decision to set it's parent id to 0 when all other IDs started
at 1 to account for the null situation, that WAS the issue - the method that
searched for a parent and returned an instance was not accounting for a null
value being returned (no match found). I didn't describe that code in my
original post. I have it working now! Thanks, it often just takes a second
pair of eyes. Thank you!
Jason Merrill
Bank of America
GT&O L&LD Solutions Design & Development
eTools & Multimedia
Bank of America Flash Platform Developer Community
----------------------------------------------------------------------------
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of
Paul Andrews
Sent: Thursday, January 24, 2008 6:00 PM
To: [email protected]
Subject: Re: [flexcoders] chicken and egg object instatiation
----- Original Message -----
From: Merrill, Jason
To: [email protected]
Sent: Thursday, January 24, 2008 10:52 PM
Subject: RE: [flexcoders] chicken and egg object instatiation
Yeah, thanks, but what you've said is all the stuff I'm already doing...
Well, it's about all I can suggest while debugging by proxy!
The notion of a 'parent' doesn't really exist for a network, so I'm still
not sure if this is really a tree.
If you have no values of parentAtom that are null, then maybe you do have
an unset value for id?
Maybe this is a classic where your array index count is one off and the
first or last value remains unset?
Basic stuff, I know (bites me all the time!)
Paul
Jason Merrill
Bank of America
GT&O L&LD Solutions Design & Development
eTools & Multimedia
Bank of America Flash Platform Developer Community
------------------------------------------------------------------------
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of
Paul Andrews
Sent: Thursday, January 24, 2008 5:47 PM
To: [email protected]
Subject: Re: [flexcoders] chicken and egg object instatiation
Jason,
Presumably you're simplifying things. In a network diagram, there may
be several other connected atoms, so you'd need an array of parentAtoms and it
wouldn't be a parent relationship.
If you're really talking about a tree, then the first atom won't have a
parent and will be null.
When you create each atom, put a reference to it in an array. When you
think you've populated all the parentAtom references, check them all by cycling
through the array.
Somewhere, somehow, you must have a null parentAtom value.
Sorry, not very helpful.
Paul
----- Original Message -----
From: Merrill, Jason
To: [email protected]
Sent: Thursday, January 24, 2008 10:38 PM
Subject: [flexcoders] chicken and egg object instatiation
I have some AS3 code in Flex that creates a series of objects (class
instances) based on some data. It's a network diagram being drawn dynamically.
Each class instance object (I call them "atoms") extends Sprite, has an id
number property set in it's constructor. Each atom instance has to reference
(either directly or by the id) another "atom" class instance so it knows what
object is it's "parent" (I have been careful to not actually use the keyword
"parent" but use other property names like atomParent) - this is so it can draw
a line to it on the screen and maintain a relationship. It's kind of a chicken
and egg thing, but I thought I had it solved by creating all the "atom" object
instances first, and then setting the atom's parentAtom property to another
atom instance later. That works, however, FP9 Debug gives me the following
error when I try and reference a property on the atom's "parent" (i.e.
atom.atomParent.id)
Cannot access a property or method of a null object reference.
The thing I don't get is the parent property (an instance of Atom)
gets set right, if I trace it on an atom instance, it shows:
[object Atom]
As I would expect. And the id property on each atom gets set
properly when the constructor runs. I've checked the data too, all is well
there. However, if I trace myAtomInstance.parentAtom.id I get null, even
though the constructor should have already run on that object and set that id
property.
How would you normally handle a situation like this? I've tried
several things, like breaking up the methods that set, create atoms, and then
set the parent property to run via a timer, so the atoms are created, then the
atom.atomParent is set a second later and the atom.atomParent.id property is
traced a second after that, but it still comes up null. If you want the code
details, I think it's too much to post here, but I could post if you would like
or send offlist.
Jason Merrill
Bank of America
GT&O L&LD Solutions Design & Development
eTools & Multimedia
Bank of America Flash Platform Developer Community