I would suggest implementing interfaces, as a good practice:

interface ISpeakable
{
   function speak();
}

class myClass implements ISpeakable
{
   function speak() {}
}

this lets you pass around instances that implement your interface and to
change behaviors at runtime, such as:

class TestClass
{
   private var speaker:ISpeakable;

  public function setSpeaker( spkr:ISpeakable ) {
     speaker = spkr;
  }
}

Not sure it's close to what you're looking for, but can be good practice in
large apps.

-Scott

On 1/16/07, Merrill, Jason <[EMAIL PROTECTED]> wrote:

>>Flash allows deleting classes. But maybe I am not
>>aware of some resulting problems.
>>Is is ok in terms of good programing practices ?

No, don't delete anything.  Why not use method overwriting?

class myBaseClass(){
        function speak(){
                trace("greeting)
        }
}

class myHelloClass extends myBaseClass{
        function speak(){
                trace("Hello")
        }
}

class myWhatsUpClass extends myBaseClass{
        function speak(){
                trace("What's Up?")
        }
}

then create instances of the ones you want to use


Jason Merrill
Bank of America
Learning & Organizational Effectiveness







>>-----Original Message-----
>>From: [EMAIL PROTECTED]
>>[mailto:[EMAIL PROTECTED] On Behalf
>>Of BlackMail
>>Sent: Tuesday, January 16, 2007 1:05 PM
>>To: flashcoders@chattyfig.figleaf.com
>>Subject: [Flashcoders] overwriting a class
>>
>>Hi,
>>
>>I am looking for advice about swapping classes of the same
>>name but using different methods.
>>
>>Let's consider three classes:
>>
>>class SomeClass
>>{
>>        public function meth()
>>        {
>>               trace("meth of skin SomeClass VERSION 0");
>>        }
>>}
>>//
>>class SomeClass
>>{
>>        public function meth()
>>        {
>>                trace("meth of skin SomeClass VERSION 1");
>>        }
>>
>>}
>>//
>>class SomeClass
>>{
>>        public function meth()
>>        {
>>                trace("meth of skin SomeClass VERSION 2");
>>                someNewMethod();
>>
>>        }
>>        private function someNewMethod()
>>        {
>>                trace("something new...");
>>        }
>>
>>}
>>
>>The first of those is imported into a main.swf file. I can make an
>>instance:
>>
>>var Q:SomeClass = new SomeClass();
>>Q.meth()   // traces :  meth of skin SomeClass VERSION 0
>>
>>The next two classes are imported in: one storage1.swf and
>>the other, storage2.swf
>>
>>Both .swf files are loaded into the main.swf. First the
>>storage1.swf and next storage2.swf. But before loading, I
>>delete the class:
>>
>>trace(SomeClass) // out: [type Function] delete SomeClass
>>trace(SomeClass) // out: undefined
>>
>>And after loading the storage1.swf I can make again an
>>instance of SomeClass:
>>
>>var Q1:SomeClass = new SomeClass();
>>Q1.meth() // traces:   meth of skin SomeClass VERSION 1
>>
>>It uses a new version of meth().
>>
>>Now I delete the SomeClass class:
>>
>>delete SomeClass
>>
>>... and load somewhere into the stage of main.swf the
>>storage2.swf file. After loading the first one I can make a
>>new instance of
>>SomeClass:
>>
>>var Q2:SomeClass = new SomeClass();
>>Q2.meth() // traces:   meth of skin SomeClass VERSION 2
>>          //           something new...
>>
>>
>>and so on, deleting an loading a new version....
>>
>>Now the question:
>>The same class name, the same method name, eventually other,
>>new methods of the same class and deleting the class....
>>Could this be a good way to overwrite classes ? I tested it
>>and works. Flash allows deleting classes. But maybe I am not
>>aware of some resulting problems.
>>Is is ok in terms of good programing practices ?
>>
>>Thanks,
>>
>>Greg
>>
>>
>>
>>
>>
>>
>>----------------------------------------------------------------------
>>Lufa dla generala. Zobacz >> http://link.interia.pl/f19e1
>>
>>
>>_______________________________________________
>>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




--

: : ) Scott
_______________________________________________
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