I forgot to do something with the alignItems function, here it is:

function alignItems(){
    var i = _global.menuNum, keyIndex = isNaN(_global.currentlyOver)?
null:_global.currentlyOver+1, done = true, items = _global.menuItems,
targetDistance, distance;
    while(i-->1){
        targetDistance = items[i-1]._x + itemSize;
         if(i==keyIndex) targetDistance += itemSpacing2;
        else targetDistance += itemSpacing;
        distance = targetDistance - items[i]._x;
        if(Math.abs(distance)>1){
            items[i]._x += distance*0.4;
            if(done) done = false;
        } else if(distance!=0) items[i]._x = targetDistance;
    }
    updateAfterEvent();
    if(done) clearInterval(_global.intID);
}

On 4/14/06, elibol <[EMAIL PROTECTED]> wrote:
>
> Hey man, try this out
>
> init();
>
> function init(){
>
>     _level0.createEmptyMovieClip("menu",-1);
>     _global.menuNum=6;
>     _global.itemSize=75;
>     _global.itemSpacing = 10;
>     _global.itemSpacing2 = 40;
>     _global.menuItems=[];
>     _global.currentlyOver = null;
>     var i = -1, mitems;
>     while(++i < menuNum){
>         mitems = _global.menuItems[i] = menu.attachMovie("clip","clip"+i,i);
>
>         mitems._x=i*(itemSize+itemSpacing);
>
>         mitems._y=Stage.height/2;
>         mitems.index = i;
>         mitems._controller = this;
>         mitems.onRollOver = function(){
>             this._controller.setRollOverItem( this.index);
>         }
>         mitems.onRollOut=function(){
>             this._controller.reset();
>         }
>         mitems.onRelease=function(){
>             trace("you clicked item "+this.index);
>         }
>     }
> }
>
> function setRollOverItem(index:Number):Void {
>     clearInterval(_global.intID);
>     _global.currentlyOver = index;
>     _global.intID = setInterval(this, 'alignItems', 15);
> }
>
> function reset(){
>     clearInterval(_global.intID);
>     _global.currentlyOver = null;
>     _global.intID = setInterval(this, 'alignItems', 15);
> }
>
> function alignItems(){
>     var i =-1, l = _global.menuNum, keyIndex =
> isNaN(_global.currentlyOver)? null:_global.currentlyOver+1, done = true,
> items = _global.menuItems, targetDistance, distance;
>     while(++i<l){
>         if(i!=0){
>             targetDistance = items[i-1]._x + itemSize;
>              if(i==keyIndex) targetDistance += itemSpacing2;
>             else targetDistance += itemSpacing;
>             distance = targetDistance - items[i]._x;
>             items[i]._x += distance*0.4;
>             if(Math.abs(distance)>1 && done) done = false;
>         }
>     }
>     updateAfterEvent();
>     if(done) clearInterval(_global.intID);
>
> }
>
> On 4/13/06, Flash guru <[EMAIL PROTECTED]> wrote:
> >
> > Hey all,
> >
> > I'm working on this nav system and it has one bug in it. I know there is
> >
> > something wrong with my logic somwhere, I've just looked at it to long.
> > Basically the bug is if you roll your mouse from right to left to
> > quickly
> > you get this crazy spacing issue.  Any help would be great.
> >
> > To make the following code to work just create a rectangle 75x11 and
> > make it
> > into a symbol with a linkage name of 'clip'. That's it you don't need
> > anything on stage and put the following code in frame 1.
> >
> > Thanks again
> >
> >
> >
> >
> > init();
> > function init(){
> > //initialize menu items
> > _level0.createEmptyMovieClip("menu",-1);
> > _global.menuNum = 6;             //number of menuitems
> > _global.menuSpacing = 85;        //spacing
> >     //set properties for menu items
> >     for(var i=0; i<menuNum+1; i++){
> >         var mitems:MovieClip = menu.attachMovie("clip","clip"+i,i);
> >         mitems._x = i * menuSpacing;
> >         mitems._y = Stage.height/2 ;
> >         mitems.id = i;
> >         mitems.moved = 0;
> >         mitems.onRollOver = function(){    checkState(this);    }
> >         mitems.onRollOut =  function(){    moveBack(this);     }
> >         mitems.onRelease =  function(){    trace("you clicked item "
> > +this.id);}
> >     }
> > }
> >
> > function checkState(itemPressed){
> >     var startItem = itemPressed.id +1;
> >     for(var j=startItem; j<8; j++){
> >         if(menu["clip"+j].moved == 1){    //checks to make sure you
> > can't
> > rollover an item more than once
> >             delete menu["clip"+j].onRollOver;
> >         }else{                            //moves items
> >         var cliptoMove = menu["clip"+j];
> >         var movePos = menu["clip"+j]._x + (cliptoMove._width/2);  //will
> > be
> > used to tween items to the right of the one pressed
> >         tween(cliptoMove,movePos, itemPressed.id-1);
> >         menu["clip"+j].moved = 1;
> >         }
> >     }
> > };
> >
> > function moveBack(item){
> >     var startItem = item.id +1;
> >     for(var j=startItem; j<8; j++){
> >         var cliptoMove = menu["clip"+j];
> >         var origPos = j * menuSpacing;
> >         tween(cliptoMove,origPos);
> >         menu["clip"+j].moved=0;
> >     }
> >
> > }
> > function tween(clip,targetX,itemtoDel){
> >     if(clip._x != targetX){
> >         clip.onEnterFrame = function(){
> >         var easing = .5;
> >         var vx = (targetX - clip._x)*easing;
> >         clip._x +=vx
> >         }
> >     }
> > }
> > _______________________________________________
> > [email protected]
> > 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
> >
>
>
_______________________________________________
[email protected]
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