Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsGeneralPHPASPPerlColdFusionFlashHTML, CSS, ScriptsBrowsers

Webmaster Forum / Flash / Flash Remoting / April 2006



Tip: Looking for answers? Try searching our database.

bad to create more than one service?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
sneakyimp - 20 Apr 2006 22:31 GMT
i have a flash project constituted of multiple flash movies.  each one is
creating its own instance of the exact same remoting service.  i have two basic
questions.

here's the deal:

main.swf
 - loads companion_products.swf
companion_products.swf
 - creates a service like this:  var productService:Service = new
Service(gatewayUrl, null, "products");
 - waits for loaded SWFs to trigger events to load a dataGrid using the
service above
 - calls 2 INSTANCES of product_list.swf
product_list.swf - each instances does the following:
 - creates a service like this:  var productService:Service = new
Service(gatewayUrl, null, "products");
 - loads big fat product list into a data grid
 - sends events to parent move to load its data grid

1) is that too many services, am i going to get into trouble?  should i
consolidate those services into one service called from main.swf?  

2) if so, what about when i'm developing...it's nice just to ctrl-enter on
each move to test it.  in other words, what's a good consolidation technique?
jag57 - 23 Apr 2006 19:36 GMT
I think I can answer your first question.

You could create a class and save the service in a static variable, something
like this:

class ProductService
{
   public static var theService:Service;
   public static function saveService(newService):Void
   {
      ProductService.theService = newService;
   }
}

Then you can use it like this:

ProductService.saveService(new Service(gatewayUrl, null, "products"));
ProductService.theService.getData();

I'm not sure if this is the best way, but that's what I thought of first.  
Another way you could do it without static variables is to create an instance
of a class (such as ProductService) that models your remote service.  In the
constructor of ProductService you would create the new Service and store it in
a private variable.  Then you would put some of your data access functions in
ProductService like getData, addData, etc.  You could pass this around to the
different swfs.

Good luck.
sneakyimp - 26 Apr 2006 19:14 GMT
t's probably not a good idea to create the services in each swf. This will
lead to maintanence problems in the future if you change the name of your
service.

Is that because I would then have to edit all my individual flash files?  My
thinking here was that if each SWF creates its own version of the service then
it is completely independent of the other swfs and how they choose to name
and/or deal with their own version of the service.  could you elaborate?  where
might i change my service name so that it applies to all swfs?

As for your class you describe below...that's kind of a new concept for me.  
It appears to me as though you are still creating a new service each time you
call

ProductService.saveService(new Service(gatewayUrl, null, "products"));

To create one service and globally access it from all current SWFs, you might
as well just add this to all your SWF movies:

if (!_global.myService) {
  _global.myService = new Service(gatewayUrl, null, "products");
}

and then refer in each SWF to the service as _global.myService, right?
jag57 - 26 Apr 2006 21:22 GMT
What I'm saying is, save the service into the class once (such as in your
main.swf), then you can use it everywhere else.  This is similar to your
_global example (which would work).  Since the theService variable is static,
you can refer to it anywhere.  If the name of your service changes, such as
from ProductService.cfc to ProductData.cfc, you can update the service creation
in one place.

Hope this helps.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.