Hi Sid for some reason that still doesn't work, it's not spacing the buttons out, it also seems to be treating all the buttons as just one button, and when i trace out the value of runningX it only gives me one value,
any ideas, many thanks again, Thomas 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.width + 10;// +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); } } -----Original Message----- From: flashcoders-boun...@chattyfig.figleaf.com [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Sidney de Koning Sent: 26 August 2009 10:42 To: Flash Coders List Subject: Re: [Flashcoders] spacing horizontal dynamic xml menu textfields Hi Thomas, In the nav item objects you are creating you can override the width and height functions, like so; override public function get width( ):Number { // The plus 4 makes it look better, change this if you like return _myTextfield.textWidth + 4; } Then it will all have a different width. Oh i just see that you have to use width since navItem is not a textfield, but uses a textfield so it does not have the textWidth funtion. Try that :) runningX += navItem.width + 20; Oh and just a (real important) note, it is very good practice to always create classes with a capital letter, so it then becomes NavItem instead of navItem. Cheers, Sid On Aug 26, 2009, at 10:28 AM, thomas horner wrote: > Hi Sid many thanks for the demo, have managed to incorporate this > successfully into what I was doing, and evenly space the items, but > am > struggling to space the items, > > as per line; > > runningX += textheader.textwidth + 20; //20 is the offset or padding > between the items, however for some reason there is no gap and all > the items > are butted up to one another? > > many thanks, in advance , Thomas > > -----Original Message----- > From: flashcoders-boun...@chattyfig.figleaf.com > [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of > Sidney de > Koning - Funky Monkey Studios > Sent: 25 August 2009 16:44 > To: Flash Coders List > Subject: RE: [Flashcoders] spacing horizontal dynamic xml menu > textfields > > He Thomas, > > This stuff can be a bit difficult when making the transition. > Textfield has a really cool property called textWidth and > textHeight, that > retruns only the width and height of the actual height :) > > I have put comment in the code that explain it. Here is an example > to demo: > > var runningX:Number = 0; > > // This is basically your data comming from XML > var itemsArr:Array = new Array("one", "different length", "piece of > text", > "last bit", "evently spaced"); > > // It does not really matter what kind of loop you do, it is the way > of > spacing them thst matters, so you can do your loop like you normally > would, > // here i'm just using an array to demonstrate > for (var index:int = 0; index < itemsArr.length ; index++) { > > // You create items of any kind you like... > var _textheader:TextField = new TextField( ); > _textheader.text = itemsArr[index]; > _textheader.autoSize = TextFieldAutoSize.LEFT; > > // 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) > _textheader.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 += _textheader.textWidth + 20; // +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. > addChild(_textheader); > } > > Any questions, just ask :) > > Cheers, Sid >> im using it with in the gaia framework do you know it? below is my >> loop >> and >> 'navbut.x' is what im trying to find, i need to add all the widths >> of all >> the dynamic textfields sequentially and then space them out evenly >> horizontally , >> >> im just totally stuck! >> >> >> for each (var section:XML in siteNav.section) { >> >> navbut = new navItem(); >> >> >> navbut.label.autoSize=TextFieldAutoSize.LEFT; >> >> >> //Insert the menu text (li...@name reads the >> link's "name" attribute) >> navbut.label.text=secti...@name; >> //Assign an url to a menu item >> navbut.linkto=secti...@src; >> navbut.keepopen=secti...@keep; >> navbut.isclicked=secti...@highlight; >> >> //Insert the menu button to stage >> >> navbut.y=0; >> >> trace(total); >> >> navbut.x= ?; >> >> nav1.addChild(navbut); >> >> >> //Make the button look like a button (hand >> cursor) >> navbut.buttonMode=true; >> navbut.mouseChildren=false; >> navbut.alpha=0; >> navbut.name=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); >> >> >> //trace(navbut.x); >> >> //Increment the menu button counter, so we >> know how many buttons there are >> i++; >> } >> } >> >> -----Original Message----- >> From: flashcoders-boun...@chattyfig.figleaf.com >> [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of >> Sidney de >> Koning - Funky Monkey Studios >> Sent: 25 August 2009 15:52 >> To: Flash Coders List >> Subject: RE: [Flashcoders] spacing horizontal dynamic xml menu >> textfields >> >> No problem :) >> This is using AS3. Where do you have problem with? >> >> Sid >> >> >>> is this using as2 as im trying to do it in as3 so am a bit confused >>> >>> -----Original Message----- >>> From: flashcoders-boun...@chattyfig.figleaf.com >>> [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of >>> Sidney >>> de >>> Koning >>> Sent: 25 August 2009 15:22 >>> To: Flash Coders List >>> Subject: Re: [Flashcoders] spacing horizontal dynamic xml menu >>> textfields >>> >>> Yup that is correct. X and width, Y and height. >>> >>> Good luck! >>> >>> Sid >>> >>> On Aug 25, 2009, at 3:36 PM, thomas horner wrote: >>> >>>> Hi thanks, so this is for a vertical menu or positioning vertical >>>> textFields, >>>> >>>> i will try and adjust this for horizontal purposes and measure the >>>> width as >>>> opposed to the height then? >>>> >>>> -----Original Message----- >>>> From: flashcoders-boun...@chattyfig.figleaf.com >>>> [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of >>>> Sidney de >>>> Koning >>>> Sent: 25 August 2009 14:22 >>>> To: Flash Coders List >>>> Subject: Re: [Flashcoders] spacing horizontal dynamic xml menu >>>> textfields >>>> >>>> Hi Thomas, >>>> >>>> Try to do something like this and adjust it to your own needs; >>>> >>>> // When you are in a for loop, create new items and and try to >>>> measure >>>> the height of an item. >>>> // And position items vertically.You need to remember the previous >>>> item, the fastest way to do this is to have a runningY var declared >>>> outside the for loop with an initial value of zero. >>>> //See comments in code for further explanation. >>>> >>>> var runningY:Number = 0; >>>> var OFFSET_X:Number = 20; >>>> >>>> for (var index:int = 0; index < 4 ; index++) { >>>> >>>> var _textheader:TextField = new TextField( ); >>>> _textheader.text = "Text"; >>>> _textheader.autoSize = TextFieldAutoSize.LEFT; >>>> _textheader.x = _background.x - _background.width / 2 + OFFSET_X; >>>> // First iteration runningY = 0; >>>> // Second iteration runningY = 0 + textHeader.height +2; >>>> textHeader.height = 20 >>>> // Third iteration runningY = 22 + textHeader.height +2; >>>> textHeader.height = 40 -- mutiple lines of text >>>> // Fourth iteration runningY = 64 + textHeader.height +2; >>>> textHeader.height = 20 >>>> // Fifth iteration runningY = 86 >>>> _textheader.y = runningY; >>>> runningY += _textheader.height + 2; // textheader = 20 >>>> } >>>> >>>> >>>> >>>> On Aug 25, 2009, at 3:06 PM, thomas horner wrote: >>>> >>>>> >>>>> >>>>> Hi all am struggling to position, my textFields generated within >>>>> my >>>>> loop >>>>> from my external xml, >>>>> >>>>> >>>>> >>>>> i want to evenly space them and as they are dynamic they are all >>>>> of >>>>> different sizes. >>>>> >>>>> >>>>> >>>>> i have run a trace on the loop as follows; >>>>> >>>>> >>>>> >>>>> trace(navbut.label.width); >>>>> >>>>> >>>>> >>>>> which gives me the widths of each field how do it add the total of >>>>> the >>>>> widths from the loop? to then space them. >>>>> >>>>> _______________________________________________ >>>>> 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 >>>> >>>> _______________________________________________ >>>> 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 >>> >>> _______________________________________________ >>> Flashcoders mailing list >>> Flashcoders@chattyfig.figleaf.com >>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>> >> >> >> -- >> Hire me to do your website, businesscards, presentations or flyers. >> -- >> Only those who dare to fail greatly can ever achieve greatly. - >> Robert F. >> Kennedy >> -- >> Sidney de Koning | Flash Developer/Creative Soul/Multimedialist >> Funky Monkey Studios | Van Ostadestraat 286 HS | 1073 TW | >> Amsterdam | >> e:sid...@funky-monkey.nl | tel: +31(06)24 548336 | fax: +31 (0)84 >> 747 7288 >> >> >> >> _______________________________________________ >> 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 >> > > > -- > Hire me to do your website, businesscards, presentations or flyers. > -- > Only those who dare to fail greatly can ever achieve greatly. - > Robert F. > Kennedy > -- > Sidney de Koning | Flash Developer/Creative Soul/Multimedialist > Funky Monkey Studios | Van Ostadestraat 286 HS | 1073 TW | Amsterdam | > e:sid...@funky-monkey.nl | tel: +31(06)24 548336 | fax: +31 (0)84 > 747 7288 > > > > _______________________________________________ > 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 _______________________________________________ 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