Only using packges is not enough in this case, since when a swf is loaded
into another swf, the loaded swf's classes are partitioned into a separate
applicationDomain by default, and Niels specifically wishes to use swf A's
version of class C.

On Fri, May 9, 2008 at 9:46 AM, Niels Wolf <[EMAIL PROTECTED]>
wrote:

> Thanks for the comments. I guess I have enough right now.
>
> Niels
>
> On 5/9/08 6:10 PM, "Ian Thomas" <[EMAIL PROTECTED]> wrote:
>
> > The simplest answer - use packages.
> >
> > e.g.
> > Classes for SWF A should be in package com.mediacatalyst.a
> > Classes for SWF B should be in package com.mediacatalyst.b
> >
> > Without using packages - In AS3/AVM2, you can use different
> > applicationDomains to separate that sort of thing, but then if you do
> > so it's difficult to talk between the movies at all.
> >
> > HTH,
> >   Ian
> >
> >
> > On Fri, May 9, 2008 at 4:50 PM, Niels Wolf <[EMAIL PROTECTED]
> >
> > wrote:
> >> Hey.
> >>
> >>  I am looking into following scenario:
> >>
> >>  SWF A loads other SWF B.
> >>
> >>  A defines class C.
> >>  B defines class C.
> >>
> >>  If B calls on C it gets C from A!
> >>
> >>  example:
> >>
> >>  B.swf
> >>  package{
> >>     import flash.text.TextField;
> >>     import flash.display.Sprite;
> >>     import flash.display.Loader;
> >>     import flash.net.URLRequest;
> >>
> >>     public class C extends Sprite{
> >>         private var variable:String = "I am C from B";
> >>
> >>         public function C(){
> >>             trace(variable);
> >>             var txt:TextField = new TextField();
> >>             txt.text = variable;
> >>             addChild(txt);
> >>         }
> >>
> >>     }
> >>  }
> >>
> >>  A.swf
> >>  package{
> >>     import flash.text.TextField;
> >>     import flash.display.Sprite;
> >>     import flash.display.Loader;
> >>     import flash.net.URLRequest;
> >>
> >>     public class C extends Sprite{
> >>         private var variable:String = "I am C from A";
> >>
> >>         public function C(){
> >>             trace(variable);
> >>             var txt:TextField = new TextField();
> >>             txt.text = variable;
> >>             addChild(txt);
> >>
> >>             var loader:Loader = new Loader();
> >>             loader.load(new URLRequest("B.swf"));
> >>         }
> >>
> >>     }
> >>  }
> >>
> >>  RUN A.swf outputs:
> >>  I am C from A
> >>  I am C from A
> >>  I am C from A
> >>  I am C from A
> >>  ...
> >>
> >>
> >>  Even as it sounds natural it implies mayor restrictions if your project
> >>  requires nested swf loading.
> >>
> >>  Is there a way to seal class definitions from each other but not
> objects (as
> >>  the nested swfs have to talk to each other.. Though localconnection
> could be
> >>  an awkward answer).
> >>
> >>  Comments are welcome.
> >>
> >>  Thanks
> >>
> >>  \n
> >>
> >>
> >>  _______________________________________________
> >>  osflash mailing list
> >>  [email protected]
> >>  http://osflash.org/mailman/listinfo/osflash_osflash.org
> >>
> >
> > _______________________________________________
> > osflash mailing list
> > [email protected]
> > http://osflash.org/mailman/listinfo/osflash_osflash.org
>
>
> _______________________________________________
> osflash mailing list
> [email protected]
> http://osflash.org/mailman/listinfo/osflash_osflash.org
>
_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org

Reply via email to