|
List Info
Thread: Re: Class definitions
|
|
| Re: Class definitions |

|
2008-05-09 13:44:23 |
|
I tried it.. It worked though.
On 5/9/08 7:34 PM, "Rich Rodecker" <flashape2 gmail.com> 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 <niels.wolf mediacatalyst.com> wrote:
Thanks for the comments. I guess I have enough right now.
Niels
On 5/9/08 6:10 PM, "Ian Thomas" <ian eirias.net> 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 <niels.wolf mediacatalyst.com>
> 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.
>> | |