Argh! Finally got it working! Thanks all.

I was missing some concepts in OOP for collaboration with teams, like
intrinsic classes and interfaces.

Ok, what I did for a try was having a method in my main class to register
third party movies' main classes. The I also have an interface they should
implement.

So I give them 2 files:
                - an intrinsic copy of my main class only with the
definition of register and getInstance methods.
                - an interface with the methods i'll call from my main
class

So in their class they do something like this

import lib.MainClass;
import lib.interface.InterfaceClass

class ThirdPartyClass implements InterfaceClass {
    ...
   public function ThirdPartyClass () {
          MainClass.getInstance().register(this);
   }
   ... implement interface methods....
}

Do you think is a good idea to give them this 2 files, or should I pass them
just an intrinsic class for them to extend, thus not allowin their main
class to extend anything else.

Again thakyou all, this is being of great help.

On 11/22/06, Michael Nisi <[EMAIL PROTECTED]> wrote:

Forget about: Application.main(container_mc);
> Application.main();

M

On 11/22/06, Michael Nisi <[EMAIL PROTECTED]> wrote:
> Hey Ricardo,
>
> just to give you a ruff idea, there are bazillion ways of doing this.
> You have two flas, shell.fla and section.fla. In each there's a clip
> on Stage called container_mc.
>
> In shell.fla on _root you do:
> Application.main(container_mc);
>
> In section.fla on _root you do:
> var section:Section = new Section(container_mc);
>
> Here are the classes:
> - Application
> - ViewLocator
> - Playable (Interface)
> - Section
>
> import ViewLocator;
> import Section;
>
> class Application
> {
>     function Application()
>     {
>         var loader:MovieClipLoader = new MovieClipLoader();
>         loader.loadClip("section.swf", _root.container_mc);
>     }
>
>     public static function main():Void
>     {
>         var application:Application = new Application();
>     }
> }
>
> import Playable;
> import Application;
>
> class ViewLocator
> {
>     public static function register(section:Playable):Void
>     {
>         // Store section or whatever...
>         section.start();
>     }
> }
>
> interface Playable
> {
>     function start();
> }
>
> import Playable;
> import ViewLocator;
>
> class Section implements Playable
> {
>     function Section(target:MovieClip)
>     {
>         ViewLocator.register(this);
>     }
>
>     public function start()
>     {
>         trace("Section.start");
>     }
> }
>
> Regards
> Michael
>
> On 11/22/06, Wade Arnold <[EMAIL PROTECTED]> wrote:
> > Where would you place a your "global" properties? This is a question
that
> > has always got me.
> >
> > If the properties such as framerate, gatewayURL, styles, etc need to
be in
> > the class application. They have to be there for two reasons.
> > 1. User defined inspectable properties.
> > 2. variables must be available for proper instantiation.
> >
> >
> > I have always wanted to have a config file, then a worker class that
just
> > handles all the get setters. However I have never been able to pull
this off
> > in order for the application class to wait for the variables to be
> > populated. Any ideas? I assume I will try again in AS3.
> >
> > Wade
> >
> >
> >
> > On 11/22/06 1:56 AM, "Miguel Angel Sánchez" <[EMAIL PROTECTED]>
wrote:
> >
> > > There is another approach to communicate those swfs:
> > > - At your side:
> > > 1. Class Application (singleton)
> > > 2. Class LoadedSWF (or whatever), abstract class that every swf of
the
> > > team development will have to extend. This class could implement any
> > > interface you like, and will have a constructor like this:
> > >
> > > public function LoadedSWF() {
> > >     Application.getInstance().register(this);
> > > }
> > >
> > > 3. Your Application class will have a method register where you can
> > > subscribe to LoadedSWF events, or even store a reference to the
object
> > > to call any of his methods.
> > >
> > > public function register(obj:LoadedSWF):Void {
> > >     obj.addEventListener("event", Delegate.create(this, onEvent));
> > > }
> > >
> > > - At the team development side:
> > > 1. intrinsic class Application
> > > 2. intrinsic class LoadedSWF
> > > 3. The class that controls the swf will have to extend LoadedSWF,
and
> > > call super() in its constructor
> > > class Whatever extends LoadedSWF {
> > >     public function Whatever() {
> > >         super();
> > >         ...
> > >     }
> > > }
> > >
> > > This way everytime you load an external swf of your team development
it
> > > automatically notifies your Application class.
> > >
> > > PS: so many people from DMSTK around here these days :-)
> > >
> > > Ricardo Sánchez escribió:
> > >> Man! I must be very dumb, but I don't know how to refer to the
class that
> > >> implements the interface from the main swf.
> > >>
> > >>
> > >>
> > >> On 11/21/06, Ricardo Sánchez <[EMAIL PROTECTED]> wrote:
> > >>>
> > >>> So, back to what you said earlier, this should be:
> > >>>
> > >>> container.loadMovie("externalMovie");
> > >>> [after fully load]
> > >>> container.section.config()
> > >>> container.section.start();
> > >>>
> > >>> wouldn't it?
> > >>>
> > >>> On 11/21/06, Zárate <[EMAIL PROTECTED]> wrote:
> > >>>>
> > >>>> No man, that's not my point.
> > >>>>
> > >>>> You cannot make a swf implement an interface, but you can make
the
> > >>>> content of that swf implement it. Say you have in the _root of
every
> > >>>> section swf something like this:
> > >>>>
> > >>>> -----------
> > >>>>
> > >>>> var section:SectionClass = new SectionClass(this);
> > >>>>
> > >>>> ------------
> > >>>>
> > >>>> "SectionClass" implements the interface, so you know which
methods and
> > >>>> properties are going to be available in the "section" variable.
> > >>>>
> > >>>> You cannot "force" external developers in the strict mean of the
word,
> > >>>> you'll need to _ask_ them to do so. Simply refuse any external
swf not
> > >>>> implementing the interface.
> > >>>>
> > >>>> Makes more sense now?
> > >>>>
> > >>>> Cheers
> > >>>>
> > >>>> On 11/21/06, Ian Thomas <[EMAIL PROTECTED]> wrote:
> > >>>>>> For example, ensure that the container can do something like:
> > >>>>> Doh! I mean, of course, ensure that the _contained_ movie can do
> > >>>> something like:
> > >>>>>
> > >>>>> On 11/21/06, Ian Thomas <[EMAIL PROTECTED]> wrote:
> > >>>>>> The alternative (one I use a lot) is to do it backwards.
> > >>>>>>
> > >>>>>> Make the contained movie register its 'main' class with a known
> > >>>> point
> > >>>>>> in the container.
> > >>>>>>
> > >>>>>> For example, ensure that the container can do something like:
> > >>>>>>
> > >>>>>> _parent.registerMe(MyControllingClass);
> > >>>>>>
> > >>>>>> where MyControllingClass implements the PluginMovie interface
(or
> > >>>>>> whatever your interface is called) and you've set up
> > >>>>>> _parent.registerMe() as something like:
> > >>>>>>
> > >>>>>> public function registerMe(movie:PluginMovie):Void;
> > >>>>>>
> > >>>>>> Does that make sense? The other advantage of doing it
'backwards'
> > >>>> like
> > >>>>>> this is that you could put off registering until all your
> > >>> assets are
> > >>>>>> loaded or some other action has happened; your child movie has
> > >>>>>> complete control of when it's ready to talk to the container.
> > >>>>>>
> > >>>>>> Hope that helps,
> > >>>>>>     Ian
> > >>>>> _______________________________________________
> > >>>>> Flashcoders@chattyfig.figleaf.com
> > >>>>> To change your subscription options or search the archive:
> > >>>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> > >>>>>
> > >>>>> Brought to you by Fig Leaf Software
> > >>>>> Premier Authorized Adobe Consulting and Training
> > >>>>> http://www.figleaf.com
> > >>>>> http://training.figleaf.com
> > >>>>>
> > >>>>
> > >>>>
> > >>>> --
> > >>>> Juan Delgado - Zárate
> > >>>> http://zarate.tv
> > >>>> http://dandolachapa.com
> > >>>> _______________________________________________
> > >>>> Flashcoders@chattyfig.figleaf.com
> > >>>> To change your subscription options or search the archive:
> > >>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> > >>>>
> > >>>> Brought to you by Fig Leaf Software
> > >>>> Premier Authorized Adobe Consulting and Training
> > >>>> http://www.figleaf.com
> > >>>> http://training.figleaf.com
> > >>>>
> > >>>
> > >>>
> > >> _______________________________________________
> > >> Flashcoders@chattyfig.figleaf.com
> > >> To change your subscription options or search the archive:
> > >> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> > >>
> > >> Brought to you by Fig Leaf Software
> > >> Premier Authorized Adobe Consulting and Training
> > >> http://www.figleaf.com
> > >> http://training.figleaf.com
> > >>
> > > _______________________________________________
> > > Flashcoders@chattyfig.figleaf.com
> > > To change your subscription options or search the archive:
> > > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> > >
> > > Brought to you by Fig Leaf Software
> > > Premier Authorized Adobe Consulting and Training
> > > http://www.figleaf.com
> > > http://training.figleaf.com
> >
> >
> > _______________________________________________
> > Flashcoders@chattyfig.figleaf.com
> > To change your subscription options or search the archive:
> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >
> > Brought to you by Fig Leaf Software
> > Premier Authorized Adobe Consulting and Training
> > http://www.figleaf.com
> > http://training.figleaf.com
> >
>
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to