I tried it.. It worked though.
On 5/9/08 7:34 PM, "Rich Rodecker" <[EMAIL PROTECTED]> wrote:
> 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