RE: [Flashcoders] accessing event dispatchers in a loosely-coupled, modular design

2010-02-23 Thread Merrill, Jason
If an instance of those classes has been created, then it will eval to
true, otherwise it will be null, so this should work for that part of
the problem:

if(_myinstance) _myInstance.addEventListener(myEvent, myHandler);

However, if you're creating A after B, C, and D, then you'll
want to call the code above from say, a Controller class whenever A is
created.  Once A is created, then that's a trigger to add the
listeners to the other classes if they exist.  Make sense?


Jason Merrill 

Bank of  America  Global Learning 
Learning  Performance Solutions

Join the Bank of America Flash Platform Community  and visit our
Instructional Technology Design Blog
(inote: these are for Bank of America employees only)





-Original Message-
From: flashcoders-boun...@chattyfig.figleaf.com
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Andrew
Sinning
Sent: Tuesday, February 23, 2010 10:04 AM
To: Flash Coders List
Subject: [Flashcoders] accessing event dispatchers in a
loosely-coupled,modular design

Following the discussion about root yesterday, it got me thinking 
about a constant problem I face.

Object-A needs to listen to events coming from objects B, C and D, but 
only if and when these objects actually exist.  There's no guarantee 
that any of the objects B, C and D will be instantiated before or after 
A is instantiated.  So, what's the proper way for A to add itself as a 
listener to B, C and D?

What I'm currently do is this:

The event dispatchers (B, C, D etc) implement a singleton interface.

Within the target (A), I set up a Timer event to repeatedly check 
for instances of the dispatchers.  Once a dispatcher is found, the 
target adds itself as a listener, and a pointer to the dispatcher is 
created so that the target can later remove itself.


I'm not very happy with this design, but it's the best that I've been 
able to come up with. 

Thanks!
___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


Re: [Flashcoders] accessing event dispatchers in a loosely-coupled, modular design

2010-02-23 Thread Andrew Sinning

In other words:

   Create a Controller class before creating any other classes.

   Any instances that need to know when potential event dispatchers are 
created should listen to the Controller class.


   When dispatchers are created, the Controller class should dispatch 
an event.


This way I won't need to use a Timer to repeatedly look for the dispatchers.

Merrill, Jason wrote:

If an instance of those classes has been created, then it will eval to
true, otherwise it will be null, so this should work for that part of
the problem:

if(_myinstance) _myInstance.addEventListener(myEvent, myHandler);

However, if you're creating A after B, C, and D, then you'll
want to call the code above from say, a Controller class whenever A is
created.  Once A is created, then that's a trigger to add the
listeners to the other classes if they exist.  Make sense?


Jason Merrill 

Bank of  America  Global Learning 
Learning  Performance Solutions


Join the Bank of America Flash Platform Community  and visit our
Instructional Technology Design Blog
(inote: these are for Bank of America employees only)





-Original Message-
From: flashcoders-boun...@chattyfig.figleaf.com
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Andrew
Sinning
Sent: Tuesday, February 23, 2010 10:04 AM
To: Flash Coders List
Subject: [Flashcoders] accessing event dispatchers in a
loosely-coupled,modular design

Following the discussion about root yesterday, it got me thinking 
about a constant problem I face.


Object-A needs to listen to events coming from objects B, C and D, but 
only if and when these objects actually exist.  There's no guarantee 
that any of the objects B, C and D will be instantiated before or after 
A is instantiated.  So, what's the proper way for A to add itself as a 
listener to B, C and D?


What I'm currently do is this:

The event dispatchers (B, C, D etc) implement a singleton interface.

Within the target (A), I set up a Timer event to repeatedly check 
for instances of the dispatchers.  Once a dispatcher is found, the 
target adds itself as a listener, and a pointer to the dispatcher is 
created so that the target can later remove itself.



I'm not very happy with this design, but it's the best that I've been 
able to come up with. 


Thanks!
___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

  


___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


RE: [Flashcoders] accessing event dispatchers in a loosely-coupled, modular design

2010-02-23 Thread Merrill, Jason
Sort of - but I wouldn't have the controller dispatch anything. I would
only have it listen to the view(s)  (your other classes with a visual
presence).  The controller first creates an instance of A (what
determines when that happens, I don't know because I don't know what A
or your app is all about).  When it does, it also creates listeners for
B, C, D if they are present in the view.  Controller also of
course has the handler that tells whatever else to do what it has to do
(now I'm just guessing because I don't know what you're ultimately
trying to accomplish).

If something needs to happen when something changes data-wise in the
model, then you would listen to the model which dispatches events and
have the controller respond, perhaps by telling the view to change.
IMO, the Controller is the most ambiguous part of the MVC pattern. View
and Model are pretty straightforward (esp. the Model). Different people
have different ways of using the controller, but this is how I use it.
It listens to other parts of your app, and then tells other parts of
your app to do something.  It's the central nervous system to use a
methaphor - at least how I use it.  AS3 Frameworks get more broken down
than that, using things like Command classes, Mediators, and Facades and
junk for even better OOP development and control, but there can be a
steep learning curve to most of those frameworks.

Jason Merrill 

Bank of  America  Global Learning 
Learning  Performance Solutions

Join the Bank of America Flash Platform Community  and visit our
Instructional Technology Design Blog
(note: these are for Bank of America employees only)






-Original Message-
From: flashcoders-boun...@chattyfig.figleaf.com
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Andrew
Sinning
Sent: Tuesday, February 23, 2010 12:05 PM
To: Flash Coders List
Subject: Re: [Flashcoders] accessing event dispatchers in a
loosely-coupled,modular design

In other words:

Create a Controller class before creating any other classes.

Any instances that need to know when potential event dispatchers are

created should listen to the Controller class.

When dispatchers are created, the Controller class should dispatch 
an event.

This way I won't need to use a Timer to repeatedly look for the
dispatchers.

Merrill, Jason wrote:
 If an instance of those classes has been created, then it will eval to
 true, otherwise it will be null, so this should work for that part of
 the problem:

 if(_myinstance) _myInstance.addEventListener(myEvent, myHandler);

 However, if you're creating A after B, C, and D, then you'll
 want to call the code above from say, a Controller class whenever A
is
 created.  Once A is created, then that's a trigger to add the
 listeners to the other classes if they exist.  Make sense?


 Jason Merrill 

 Bank of  America  Global Learning 
 Learning  Performance Solutions

 Join the Bank of America Flash Platform Community  and visit our
 Instructional Technology Design Blog
 (inote: these are for Bank of America employees only)





 -Original Message-
 From: flashcoders-boun...@chattyfig.figleaf.com
 [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Andrew
 Sinning
 Sent: Tuesday, February 23, 2010 10:04 AM
 To: Flash Coders List
 Subject: [Flashcoders] accessing event dispatchers in a
 loosely-coupled,modular design

 Following the discussion about root yesterday, it got me thinking 
 about a constant problem I face.

 Object-A needs to listen to events coming from objects B, C and D, but

 only if and when these objects actually exist.  There's no guarantee 
 that any of the objects B, C and D will be instantiated before or
after 
 A is instantiated.  So, what's the proper way for A to add itself as a

 listener to B, C and D?

 What I'm currently do is this:

 The event dispatchers (B, C, D etc) implement a singleton
interface.

 Within the target (A), I set up a Timer event to repeatedly check 
 for instances of the dispatchers.  Once a dispatcher is found, the 
 target adds itself as a listener, and a pointer to the dispatcher is 
 created so that the target can later remove itself.


 I'm not very happy with this design, but it's the best that I've been 
 able to come up with. 

 Thanks!
 ___
 Flashcoders mailing list
 Flashcoders@chattyfig.figleaf.com
 http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
 ___
 Flashcoders mailing list
 Flashcoders@chattyfig.figleaf.com
 http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

   

___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


Re: [Flashcoders] accessing event dispatchers in a loosely-coupled, modular design

2010-02-23 Thread Allandt Bik-Elliott (Receptacle)
aside from the advice that i got on this message list, i found this  
article from adobe really useful

http://www.adobe.com/devnet/flex/articles/blueprint.html

might help here too

best
a



On 23 Feb 2010, at 17:19, Merrill, Jason wrote:

Sort of - but I wouldn't have the controller dispatch anything. I  
would

only have it listen to the view(s)  (your other classes with a visual
presence).  The controller first creates an instance of A (what
determines when that happens, I don't know because I don't know what  
A
or your app is all about).  When it does, it also creates listeners  
for

B, C, D if they are present in the view.  Controller also of
course has the handler that tells whatever else to do what it has to  
do

(now I'm just guessing because I don't know what you're ultimately
trying to accomplish).

If something needs to happen when something changes data-wise in the
model, then you would listen to the model which dispatches events and
have the controller respond, perhaps by telling the view to change.
IMO, the Controller is the most ambiguous part of the MVC pattern.  
View
and Model are pretty straightforward (esp. the Model). Different  
people

have different ways of using the controller, but this is how I use it.
It listens to other parts of your app, and then tells other parts of
your app to do something.  It's the central nervous system to use a
methaphor - at least how I use it.  AS3 Frameworks get more broken  
down
than that, using things like Command classes, Mediators, and Facades  
and

junk for even better OOP development and control, but there can be a
steep learning curve to most of those frameworks.

Jason Merrill

Bank of  America  Global Learning
Learning  Performance Solutions

Join the Bank of America Flash Platform Community  and visit our
Instructional Technology Design Blog
(note: these are for Bank of America employees only)






-Original Message-
From: flashcoders-boun...@chattyfig.figleaf.com
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Andrew
Sinning
Sent: Tuesday, February 23, 2010 12:05 PM
To: Flash Coders List
Subject: Re: [Flashcoders] accessing event dispatchers in a
loosely-coupled,modular design

In other words:

   Create a Controller class before creating any other classes.

   Any instances that need to know when potential event dispatchers  
are


created should listen to the Controller class.

   When dispatchers are created, the Controller class should dispatch
an event.

This way I won't need to use a Timer to repeatedly look for the
dispatchers.

Merrill, Jason wrote:
If an instance of those classes has been created, then it will eval  
to

true, otherwise it will be null, so this should work for that part of
the problem:

if(_myinstance) _myInstance.addEventListener(myEvent, myHandler);

However, if you're creating A after B, C, and D, then you'll
want to call the code above from say, a Controller class whenever A

is

created.  Once A is created, then that's a trigger to add the
listeners to the other classes if they exist.  Make sense?


Jason Merrill

Bank of  America  Global Learning
Learning  Performance Solutions

Join the Bank of America Flash Platform Community  and visit our
Instructional Technology Design Blog
(inote: these are for Bank of America employees only)





-Original Message-
From: flashcoders-boun...@chattyfig.figleaf.com
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of  
Andrew

Sinning
Sent: Tuesday, February 23, 2010 10:04 AM
To: Flash Coders List
Subject: [Flashcoders] accessing event dispatchers in a
loosely-coupled,modular design

Following the discussion about root yesterday, it got me thinking
about a constant problem I face.

Object-A needs to listen to events coming from objects B, C and D,  
but



only if and when these objects actually exist.  There's no guarantee
that any of the objects B, C and D will be instantiated before or

after
A is instantiated.  So, what's the proper way for A to add itself  
as a



listener to B, C and D?

What I'm currently do is this:

   The event dispatchers (B, C, D etc) implement a singleton

interface.


   Within the target (A), I set up a Timer event to repeatedly check
for instances of the dispatchers.  Once a dispatcher is found, the
target adds itself as a listener, and a pointer to the dispatcher is
created so that the target can later remove itself.


I'm not very happy with this design, but it's the best that I've been
able to come up with.

Thanks!
___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders




___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman