Actionscript 3.0 :: Dynamic XML Buttons Size And Placement With Masking?
Dec 3, 2011
what I am doing is making an XML menu for a website. Each button has a background and and over-state background. The backgrounds are 9 sliced scaled movie clips, well the over-state background is set up to mask an animation movie clip that is larger than any button will be. The mask is 9 slice scaled and is always the same size as the regular background. These backgrounds are x-scaled in a function in the Button.as. The title passed in through the XML determines the width. All of this so far works perfectly.
Now a navigation movie clip processes and adds all of the button movie clips based on the amount of nodes in the XML, this also sets the X and Y coordinates as well as sets a "spacer" between the buttons. Here is my problem, every time the function runs to create a new button, it sets the x value at:
Code: Select allbutton.x = this.width;
This is great if I don't use the mask though. What happens since the movie clip I am masking in the over-state background is wider than the buttons are is that there is wayyy to large of a gap. When each button is added, actionscript sees the width of the button with everything in it, masked or not. So I've tried a for-loop in the button creating function to increment a number variable from 0 - the max number of buttons in the XML. I then want to set the x value to:
This is the background of the button that has the correct width that actionscript should be using. By multiplying it by the i variable, it should move the x right with every button. Unfortunately it's not working.
making an XML menu for a website. Each button has a background and and over-state background. The backgrounds are 9 sliced scaled movie clips, well the over-state background is set up to mask an animation movie clip that is larger than any button will be. The mask is 9 slice scaled and is always the same size as the regular background. These backgrounds are x-scaled in a function in the Button.as. The title passed in through the XML determines the width. All of this so far works perfectly.
Now a navigation movie clip processes and adds all of the button movie clips based on the amount of nodes in the XML, this also sets the X and Y coordinates as well as sets a "spacer" between the buttons. Here is my problem, every time the function runs to create a new button, it sets the x value at:
Code: button.x = this.width;
This is great if I don't use the mask though. What happens since the movie clip I am masking in the over-state background is wider than the buttons are is that there is wayyy to large of a gap. When each button is added, actionscript sees the width of the button with everything in it, masked or not. So I've tried a for-loop in the button creating function to increment a number variable from 0 - the max number of buttons in the XML. I then want to set the x value to:
Code: button.x = (button.background.width * i);
This is the background of the button that has the correct width that actionscript should be using. By multiplying it by the i variable, it should move the x right with every button. Unfortunately it's not working.
I have a site that has multiple pages of similarly sized buttons. These are magazine covers. I'd like for the mag covers and links they point to (loaded swfs) to be dynamically loaded via a text file, if possible. The client always has new magazines she's been in and to manually load the newest buttons first is time consuming.
i made a masking anim using frame by frame animation on the mask layer...
when i exported the swf it was of 83 kb (too huge) and i checked it was all due to shapes in the mask layer....
i found "eltima swf optimizer" on internet but it gives only black and white output in the demo version ....
i opmitized all shapes one by one by using modify>shape>optimize using 100% optimization but when i exported swf this time was 114kb(even more) this sux!!!
my question is that is there any other "swf optimizer" that i can use for free.. (hey its my school project and i just need to mask a single jpeg)
is it possible to get an uh... "absolute" X and Y for _root.dropDown1MC.listMC.item? As is stands, I'm placing dropDown2MC on the stage using the following code: [AS]_root.attachMovie("dropDown2", "dropDown2", 30, {_x:_xmouse, _y:_ymouse});[/AS] and that gets it on the stage, but it doesn't function as I need it. In a perfect world, I'd like to place dropDown2MC at the X and Y of item, BUT, there is a mask to only show a certain area of listMC (it's how I'm making a scrollable dynamically populated list).
So, is there a way to get some sort of absolute value, relative to root or something, of item's X and Y coordinates? Sorry if this is a bit complicated... I'm trying to be as clear as possible, but you know how hard that can be when you're connected to Flash directly though a firewire cable to the brain
In the code below, I am loading in multiple images from based on an xml file. I am looking for a way to dynamically place the images depending on how many results are brought back. I have the starting points for the first image in each section in the code, I am trying to basically add about 40 pixels to those numbers for each image
Code: var xml = new XML(); xml.ignoreWhite = true;
what I'm trying to do is attach instances of a movieclip on stage, one by one, so they form a shape similar to one of examples below...(each dot would be a movieclip)I know I should do it using loops and probably sin/cos math methods, but am not sure where to even star
I'm creating a playlist for a music player, and I've got the song names displaying correctly in my songTitle holder MC, but there's limited space for the song names to be shown in, and I'm going to eventually have it inside a scrolling movieclip. Problem is, the text inside the textfields disappear when I try to add a mask to the movieclip they're being loaded into. I've tried adding all combos of embedFonts, antialias, and blendModes I ran into, to no avail.how to mask dynamically created textfields with a non-dynamic (Flash IDE-made) mask.
Code:
for (var i:int = 1; i <= _size; i++) { var pl_artist:TextField = new TextField; //all embedFont = true and antiAlias commands no workie }
I'm trying to print an MC that is on screen with a dynamic text field in the MC - its printing just fine but the placement of one of the elements is off. Basically I have a dynamic text field centered on the stage, however when I print it, the text field moves to the very right on the printed page, while the rest of the contents of the MC stay centered. To clarify on the printed page I basically have this nice page with centered text, but the dynamic textfield is moved all the way to the right of the page.
I'm loading images into an otherwise empty MovieClip called container_mc using UILoaders and spacing them horizontally. I also have the image names as TextFields below the images all within the container. I'm masking the container clip using the following syntax:
This USUALLY works, but for some reason when I load over 20 images into the container -- the mask no longer works. At first it appears as though it's working but then the text disappears and when I mouse over the images to scroll them horizontally, the mask (which is magenta) appears and disappears -- flickering strangely. Should I be caching? I was under the impression I had to for the dynamic text to show up. Maybe it's the where I placed the code (load-order)?
Ok so I'm trying to make a navigation system that is loaded from an XML file and has sub menus. Trying to do it ALL in AS. I don't have any symbols in my library except for the embedded font. Now, sometimes I need to mask something, is it possible to use a dynamically created mc to mask another dynamically created mc dynamically oh, did I forget to say dynamically?? Ok so let's use this as an example, two boxes. One orange, one purple.
I draw a shape with the AS3's drawing API, then I draw another shape that intersects the previous shape, both the shapes have fill in them, but the intersecting area does not have any fill. I am not able to manage the "direction" that the shape is drawn in. what I need is for flash to just fill everything up to the outer borders of all the shapes, how would i achieve this? I found this forum thread that has almost the exact same problem that i have, but it is not resolved. [URL]
I have a 8x 10 array of mcs on stage each which contains a small image. So, there are 8 parent clips (columns) each containing 6 child clips containing the thumbnail images. If the movie clip arrays are created dynamcally (therefore loaded into the top layer) how can I mask them? I'd like to be able to mask 1 vertical (parent) column at a time (so only 1 of the 8 columns (6 images) is visible.
And my problem isn't the mask but the dynamic text is not loading from the XML file anymore.I think this is because in the tutorial the first thing you do is make the dynamic text field a movie clip. As soon as I do that the text data doesn't load from the external XML file. The code that previously worked was:_root.prompt = this.firstChild.childNodes[1].firstChild.nodeValue; prompt_txt.text = _root.prompt;But now I made the dynamic text field prompt_txt a movie clip named prompt_mc and it doesn't load. So I realize now that prompt_txt lives inside prompt_mc but how do I get the text data from the XML file there???
I cannot get dynamic text fields to display when using a mask. Here is what I have done: Created a new Font object in Flash - Linkage: Export for Actionscript , class: Euro
it is masking some dynamic content that is brought in through an external swf. there is a dynamic text field and also a picture loader. whenever either one of these changes, the mask gets all distorted with holes/lighter areas in it.
I am creating a photo gallery using xml and a thumbnail bar at the side. I want each picture to fit into a square without distorting the image, so I will need to use masks. Currently I am using the loadClip metohd for loading pictures then I am attempting to use onLoadInit to dynamically set the masks. It is hard to show the problem on here so I have here's the link..[URL]...
It seems that you can't place "i" values in the onLoadInit part which I tired previously, atm I can only get one to work as you will be able to see.
In my current project I'm building a waterfall. Each drop in the waterfall is generated from the waterfall.as class and added to the stage via addchild. Now I have a mask that I want all of those drops to use however I can't seem to get this to work. I've tried placing the mask on the timeline and I couldn't seem to access the mask from the waterfall.as file. I've also given the mask it's own class and added it dynamically to no avail.
when adding a mask to a parent sprite with a dynamic text field, the text loses anti-aliasing. how can i maintain the text's anti-alias while still applying a mask to its parent, and subsequently to itself.the font is embedded, and the text field will be animated so it must also be masked along with its parent.
Im looking to make the flash file dynamic so that when someone changes the window size the flash file expands with it and some of the items contained move also.
Why do the dynamic text font size appears smaller than what I specified in the flash dynamic text properties? I used a font size of 50 for the dynamic text and when I test movie, it appears to be only a font size of 12. Why is it so?
I can't get the code to "know" which of the dynamic thumbnails has been clicked (by "know", I mean return an index value, say 0 through 7 if there are 8 projects, that I can use to access that particular project in the array of 8 projects in the rest of the code)... So if the third movieclip thumbnail were clicked, I'd like "2" to come up somehow... I've tried this code, which is kind of lame, I know, based off of the idea of each of the thumbnail movieclips' names ending in their index number:
Code: //"this" is the button that was pressed; would return a string ending in //thumberMC_<number of whichever movieclip thumb was clicked> var: testString:String = this;
[code]....
Lastly, there's a dynamic textfield I'm trying to create that never shows up for some reason. Again, you could see in the FLA (in the "createDrawer" function around line 424).
I am using buttons with a dynamic textfield and a function to set the label for various different buttons:
public function setLabel(thisLabel:String) { visibleLabel.text = thisLabel; }
I set a label for each button:
btn_mc.button1.setLabel("2 | Al Sabkha Bus Station - Al Qusais Police Housing");
I have a dynamic textfield ... myText ... which I would like to use as a page title ... so once the button has been clicked, the dynamic textfield should update with the label of the button clicked.
I'm working on a flash 8 portfolio and using the TWEEN class. First I create 5 buttons: Code: for (i=0;i<5;i++) { var button:MovieClip = this.attachMovie("PButton", "button"+i, i);
I load different image for each button and then I create some rollover effects: Code: button.onRollOver=function() { var tweenin=new Tween(this, "_width", Elastic.easeOut, 103, 203, 20, false); new Tween(this, "_height", Elastic.easeOut, 75, 198, 20, false); [Code] .....
This works only half the time. Sometimes, a tween is'nt finished correctly. I have a feeling this has something to do with the fact that while (elastic) tweening, my rollover and rollout are fired again (without moving the mouse). Any general solution for size tweening?
HOW CAN I CREATE BUTTONS THAT LET USERS SET THE SIZE OF THE SHAPES THAT THEY PAINT? I have written syntax that let mouse movements paint ellipses and rectangles and I have also added buttons that allow users to switch between painting ellipse and painting rectangles.