thanks steven, again! i had already managed to get the sids version going
inside my build, but was just getting problems with adding spacing between
them.  

for some reason now though all my buttons are acting as one when i
mouseOver, 



siteNav=IXml(assets.siteNav).xml;

                        var runningX:Number=0;

                        var padding:Number=50;

                        var itemsArr:Array=new Array(sitenav.secti...@name);

                        for (var index:int = 0; index < itemsArr.length;
index++) {

                                // You create items of any kind you like...
                                var navbut:navItem = new navItem( );
                                //assign the menu text from the navxml
                                navbut.label.text=itemsArr[index];
        
navbut.label.autoSize=TextFieldAutoSize.LEFT;

                                //Assign an url to a menu item
                                navbut.linkto=sitenav.secti...@src;

                                //read instructions fomr nav xml
                                navbut.keepopen=sitenav.secti...@keep;
                                navbut.isclicked=sitenav.secti...@highlight;

                                //Make the button look like a button (hand
cursor)
                                navbut.buttonMode=true;
                                navbut.mouseChildren=false;
                                navbut.alpha=0;
                                navbut.name=sitenav.secti...@url;
                                TweenMax.to(navbut, 0.5, {alpha:1});
                                //Add event handlers (used for animating the
buttons)
        
navbut.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
        
navbut.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
                                navbut.addEventListener(MouseEvent.CLICK,
mouseClickHandler);


                                // You say that runningX is some value.
since it was zero in the beginning we are adding the value ontop of its
current value (see line below)
                                navbut.x=runningX;


                                // ... And then you space them. You can use
textWidth if using text width or plain width for object that extend from
DisplayObjects or Sprites etc...
                                runningX+=navbut.textWidth+padding;// +10 is
the offset between the items you want ot use. Can be any number.
                                // And then you add the child to the display
list so it becomes visible.
                                nav1.addChild(navbut);

                                trace(runningX);
                        }
                }

                        
                function mouseClickHandler(e:Event):void {
                }
                
                function mouseOverHandler(e:Event):void {
                        
                                TweenMax.to(e.target, 0.25, {tint:0x888888})

                                         
                }
                
                
                function mouseOutHandler (e:Event):void {               
                        if (e.target.alpha < 1) {
                                TweenMax.to(e.target, 0.25, { alpha:0.3 } )
                        } else {
                                //do nothing
                        }

-----Original Message-----
From: flashcoders-boun...@chattyfig.figleaf.com
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Steven Sacks
Sent: 26 August 2009 09:53
To: Flash Coders List
Subject: Re: [Flashcoders] spacing horizontal dynamic xml menu textfields

As I described on my forum post, you have to first put your items in an
array.

var items:Array = [all, of, your, items];
var len:int= items.length;
var i:int;

Then, you do the following measurements:


// the right of the last item minus the left of the first item
var availableWidth:Number = items[len - 1].x + items[len -1].width -
items[0].x;

// the total widths of all the items
var totalWidth:Number = 0;
i = len;
while (i--)
{
     totalWidth += items[i].textWidth;
}

//Subtract the totalWidth from availableWidth to get the remainingWidth
var remainingWidth:Number = availableWidth - totalWidth;

// Divide remainingWidthby the number of items
var gapWidth:Number = remainingWidth / len;


// iterate through your array setting the x positions
// of the items based on the previous item's width and the gap.

var lastX:Number = 0;
for (i= 0; i < len; ++i)
{
     items[i].x = lastX;
     lastX = items[i].textWidth + gapWidth;
}

// That's all there is to it.

_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to