Ok, found the solution:

if you implement more than 1 class into your new class, you must use
this sintax:

Implements: [Chain,Events]

It seems that nobody wrote this little thing in the docs... I'm
wondering why...









On 16 Ott, 12:03, stratboy <[EMAIL PROTECTED]> wrote:
> Hi, It seems that if I implement Chain AND Events in the same class,
> Chain doesn't work anymore.
> For exemple the class below works properly, but as soon as I add
> Implements:Events, the chain methods don't work anymore. I need Events
> because I want to fire out an event when the last fx of the chain is
> complete.
> I think i'm doing something wrong implementing the Events, so, can you
> help me please?
>
> ////////////////////////////////////////
>
> var Switcher = new Class({
>
>         Implements:Chain,
>         Implements:Events,
>
>         initialize:function(){
>
>                 this.elem1 = null;
>                 this.elem2 = null;
>                 this.currentElement = null;
>
>         },
>
>         switchElements:function(elem1,elem2){
>
>                 this.elem1 = $(elem1);
>                 this.elem2 = (elem2) ? $(elem2) : null;
>
>                 if(!elem2){
>                         this.elem1.set('tween',{ link:'chain' });
>                         this.showElement1(this.elem1);
>                 }
>
>                 else{
>                         this.clearChain();
>
>                         this.elem1.set('tween',{ link:'chain' });
>                         this.elem2.set('tween',{ link:'chain', 
> onComplete:function()
> { this.callChain(); }.bindWithEvent(this) });
>
>                         this.chain(
>                                 function(){ this.fadeElement2(); },
>                                 function(){ this.hideElement2(); },
>                                 function(){ this.showElement1(); }
>                         );
>
>                         this.callChain();
>                 }
>         },
>
>         showElement1:function(){
>
> this.elem1.setStyles({ 'opacity':'0','display':'block' }).tween('opacity',
> 1);
>         },
>
>         fadeElement2:function(){
>                 this.elem2.tween('opacity',0);
>         },
>
>         hideElement2:function(){
>                 this.elem2.setStyles({'display':'none'});
>                 this.callChain();
>         }
>
>         ///////
>
> });

Reply via email to