ActionScript 3.0 :: Masking Dynamic Objects - Placing On The Timeline
Aug 3, 2009
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.
I have played some more with Flash and come upon something that i would know more about.I tried to make:A scene. when I click the left mouse button on the stage an object(from the librery [graphic]) will be place exactly where the mouse is.I did not really know how to approach this, but tried anyways.
This is my code:
stage.addEventListener(MouseEvent.MOUSE_DOWN, addApple); Function addApple(event:MouseEvent):void{ //I dont know what to put here to place an object(apple) from the libery //onto the stage where the mouse is. };
i am makeing a poker type game. and i have come a lil stuck. i have 8 players around a table. i have a player class that creates a new player when a button is pressed. the prob is io can get all the players cards x & y pos in lines like on the same x or same y axis. but how would i make the cards deal around a table. would i have to work them out and write x & ys for each player or is there another way?
I posted a message a while ago about creating a spotlight effect over a background and it was suggested that I use masks to create the desired effect. This worked fantastically.... until now lol. I need to mask both the background image AND some randomly generated on-screen objects. Whever I try to add the mask to the objects generated at run-time, it ceases to mask the background as well!
I should probably have expected this one... but was just wondering what was the best wat to get around this? Should I create 2 'spotlight' objects which directly overlap each other, but have one set to mask the background while the other masks everything else? Or is there an easier approach?
I'm loading a external SWF in to my FLAs cats_mc movie clip. How can I make the imported SWF appear underneath of the current objects in my cats_mc movie clip?.
I am trying to place an array of objects onto a stage where they drop vertically. I have been able to do it by placing the array objects into an object called "bag" but have found that the bag object only contains the last array object id so I can not apply actions to various array objects. Also my objects do not loop and only appear once.
Below is the code so far.
var tempArray:Array = new Array(); // Stores randomised values var bagArray:Array = new Array("gslow_id","gshigh_id","glow_id","ghigh_id","gdiv_id",
when drawing an object and using that objetc to mask another layer im having trouble making more than one object act as the mask. Eg I draw a circle and use the mask function to mask an image, works fine, then i draw some more geometry (in the same layer) and it will not mask as the first object did. Is there any way I can 'Join' them togeter to act as one big mask?
When scripting a button to run a movie clip (or anything else) is there ANY advantage to placing the script in the main timeline with a callback versus attaching it to the button itself with onRelease?
I have all the functionality that I want. The basic premise of this exercise is that youth will grab a statement, drag over a microphone and it'll appear on the corresponding area (board1, board2, board3). So if they grab two statements in a row it'll place their answers at my predetermined spot. Is there a way to space each answer by a difference of 10 px? So they grab answer one and it'll go at (x) 75px, answer two will go to (x) 85 px? Basically ensuring that the mc's will not overlap or pile up.
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 maybe missing the point or simply not ticking a tick box, I've created a web banner for one of my publications that I work on (please find at the following address [URL].. As you can see I have some aircraft flying away from the tree at the bottom, what I would like to happen that they dissappear when they pass the keyline. I had thought that if I continued the animation onto the pasteboard that when it came to publishing, flash would ignore items this grey area and would act as a trim, am I correct in thinking this? How would I go about correct this so that only the animation within the set parameters appear?
Also is there a way of setting the scale of a flash banner? I have a feeling that this is so simple, but just can't find the panel to set it all.
I'm making some elearning courses and we are trying to combine semi-automation with the ability to place artwork and content on the timeline. Basically we have a series of small tasks -- read this, click this button, see the result, and so on. We have a "highlight" area component that indicates the area a user is to click. Currently that component dispatches and event from the instance when it is clicked and the main timeline is listening for the event and then moves them ahead to the next task when they have clicked properly.
So the following code: myClickAreaInstance.addEventListener("clicked",handleClick) And the handleClick function and removing the listener all has to be handled on the timeline. And for a given task there might be an intro animation and the click area component might not come in until the end. So where to put that code and how to automate it becomes tricky. So I first dug up AsBroadcaster and could use it sort of like Mouse or Key classes.
AsBroadcaster.initialize(ClickArea) ClickArea.addListener(this); function clicked(obj){ //handle click broadcast [Code] .....
Would it be better to us AsBroadcaster or EventDispatcher?
it worked as I wished - by placing the swf under all other elements on the timeline via the addChildAt being 0. I now need to add another external .swf (over the top of the one I just brought in) and was expecting by using:
[Code]...
it would place it above the other .swf but in fact, it places it under one element of it. should this be the case of is there a different way to do what I wish to?
Does one normally use some sort of wrapper object to do so?
For example, if I have an array with 10 elements (for example, images that are gonna be linked), I can loop through the array and add them to stage with:
myArray[i].x = i * myArrayElement.width;
What if I wanted to position all of the elements yet keep them in the same positions relative to each other.
Can you do so with an array, I gather the answer is no. So if that's right, do people throw an Array into another object and the use that objects x property?
I'm building an animation intensive website and I want to keep my code centralized on the first frame of the main timeline. Most of the intro animations (like building the sites common elements such as menu, header, etc...) have to be done on a timeline since they are pretty complex. Would you keep the main timeline with only one frame and attach the animations via actionscript, or would you place the intro animations on the main timeline, stretching it out?
I usually place the intro and common element setups all on the main timeline cause that gives me more control on linking animations together. For example: the intro plays, then the menu loads in, then some special effects popup, and then the home content is loaded in. But since some people advocate for single frame main timelines, I'm wondering if there is a better approach.
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
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.
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.
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.
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.