I'm not saying you have to create a new instance but was just getting as
close to your example as I could, which looks like a new instance to me;

"var myBox:DrawBox("boxname");
myBox._y = 100;
myBox._alpha = 50;"

" this is just an example..
u know i wanted to apply some custom effect to a movieClip and using
mc.applyFX(bla bla) instead of applyFX(mc, bla bla);
Just like mc_tween's mc.alphaTo() for example..."

If you want shortcuts like mc_tween then you are probably attaching them to
the MovieClip prototype. This will give every MovieClip from there on out
the same functions ( version1 ).

If you want and instance by instance basis with shortcuts, then you can try
using a class like EventDispatcher.initialize ( object ), or replace a
simple MovieClip with a class that extends the MovieClip class which
includes those shortcuts you want ( version2 ).

You'll notice in version2 each shortcut calls static methods in another
class. Maybe that keeps file size and memory usage down... who knows?



/////////////////////////////////////////////
//
//      VERSION 1: Prototype Approach 
//
/////////////////////////////////////////////


var mc = this.createEmptyMovieClip ( 'box', this.getNextHighestDepth() );
MovieClip.prototype.OFouction = function(){ trace( 'this function is
special' ) };
mc.OFouction (); // this function is special




/////////////////////////////////////////////
//
//      VERSION 2: Shortcuts with static methods
//
/////////////////////////////////////////////


//      In .fla


var myBox = this.createEmptyMovieClip ('myBox', this.getNextHighestDepth()
);
myBox.__proto__ = DrawBox.prototype;
myBox.drawMe ();
myBox._y = 100;
myBox._alpha = 0;
myBox.alphaTo ( 100 );



//      in DrawBox.as


import CrazyEffects;
class DrawBox extends MovieClip
{
        public function DrawBox ( ) {   
        }

        public function drawMe (  ):Void { CrazyEffects.drawBox ( this ); }
        public function alphaTo ( alpha:Number ):Void { CrazyEffects.alphaTo
( this, alpha )  };
}



//      in CrazyEffects.as


class CrazyEffects
{

        public function CrazyEffects ( )
        {
        }

        public static function drawBox ( mc ):Void
        {
                with ( mc )
                {
                                beginFill(0xFF0000,100);
                                moveTo(0,0);
                                lineTo(100,0);
                                lineTo(100,100);
                                lineTo(0,100);
                                lineTo(0,0);
                                endFill();
                }
        }

        public static function alphaTo ( mc, alpha ):Void
        {
                mc.onEnterFrame = function()
                {
                         var dif = alpha - this._alpha;
                         if ( Math.abs( dif) < 2  )
                         {
                                 this._alpha = alpha;
                                 delete this.onEnterFrame;
                         }
                         else
                         {
                                 this._alpha += dif / 6;
                         }
                }
        }
}

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of O. Fouad
Sent: Friday, June 08, 2007 7:09 PM
To: flashcoders@chattyfig.figleaf.com
Subject: Re: [Flashcoders] Having MovieClip behaviours in a class..

thanks :D but why should i use static methods.... I am trying to create some
color effect shortcut....i wont need to create new instances. If i  have a
movieClip on my stage i wouldlike to have it
myMC.someEffect(par);


_______________________________________________
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