Xml :: Representing Nested Folders As DisplayObjects
Apr 21, 2011
I'm working on a world builder that will load a toolkit which is represented by an xml document. The document will look similar to the following:[code]Now, I want to be able to represent this structure in flash. Vertical layout is easy enough, simply placing the elements from top to bottom. It gets mind-boggling when I need to do the following:Be able to click any folder and have all its children hidden/shown.Position the elements horizontally based on hierarchical position (indent children of folders, children of the child folders, etc)Position the folders/tools vertically when folders above and in the same "directory" are hidden.It either sounds a lot easier than it is, or I'm missing a vital and obvious step.Just to save confusion - when I make reference to "folders" and "tools", these are a MovieClip which is a simple block with text over it, like:[code]
I am "old style" guy who still use Flash authoring environment as I believe working with graphics this way is easier than scripting all the things in document class..So, I have created in Flash authoring a movieClip with a graphics nested in it. Actually, this graphic is composed of two other nested graphics:
I'm creating my first AS3 project and I've already hit my first snag, nested display objects (aka buttons and movieClips). Let's say you create a movieClip and place buttonA on frame 1 and buttonB on frame 10. You create a class for that movieClip that tells it to jump to frame X after evoking a custom method. With the same method you want to assign the buttons on that frame their functions, but you can't because Flash thinks that DisplayObject does not exist. How do you make sure all DisplayObjects for a frame have been loaded, so that you can reference them?
I have figured a way around it by using the ADDED event listener. Apparently this event is triggered every time any DisplayObject is added, whether it is nested or not. What's interesting is the number of children (numChildren) for the parent movieClip stays constant. So, this code takes advantage of that fact.
I've worked wioth sub classes so I know how they work but I always work with everything all in one folder which can get messsy when there are a lot of classes to work through. So i started to make folders inside of my main folder but it's not working. Thought it may be to do with package names but as far as i know, for the whole "classes in separate folders" things that's how they are supposed to be.
I'm making a 3D program and I've already made the back end which calculates where each object's polygons should be. However, I can't seem to find a quick way of drawing them without having to remove and redraw them each time, which I'm sure would take a lot of processing power, knowing the way that Flash does things. So is there a way to draw a shape (a quad in this example) and then alter the shape's color and the position of all of its corners in the next frame without taking a huge load of processing power? I would really like to be able to do this to at least 20 polygons, hopefully more, within the span of one frame at 20 fps.
I'm brand new to Flash (and game programming, really), but want to learn a bit of it. My overall learning project is to create a Monopoly clone in Flash. nfortunately, I'm struggling to get over even my first hurdle-how to create the board graphically, and how then to deal with it in the code. So far, my thoughts are to break the board down into the different sizes of tiles (the normal property ones, the corner 4 and a large one for the middle section), then somehow place these all in the correct position relative to each other and keep that positioning correct as the pieces (and thus the camera view) move about the board.
Is this a good approach, or is there a better one? where I can find a tutorial specifically on creating board games in Flash (any sort really, wouldn't have to be Monopoly but just a game that has a board which tokens move across - and preferably which has to pan as well).
Also, as an aside, is there any way to have a dynamically coloured rectangle in a flash MovieClip (like you can have dynamic textboxs)? I ask because it would be useful if there was, as I could generate every property tile with just one MovieClip which took a name, a value and a colour...
I'm having a problem that is kind of hard to explain. I have a player character on the stage and a player class controlling the character. He moves right responding the the keyboard input fine, but when he moves left, the character has to face right for one sequence during the animation. There is no faceleft position in any of the numbers representing frames in the array controlling the walk left animation so I don't know why the player character is doing this. Here's some of the code I am using.[code]
I want to create an animating sphere representing the earth but here is the catch I want the users to be able to spin it round in real time, what tools will do the trick?
I am programming a music game where there are five movieclips (acting as buttons) representing five notes of a piano. When the user clicks on each one, they play a note. I would like to know how I can program it so that if the user clicks a specific five note sequence, it will trigger an animated movieclip in the timeline.
Example: Note_1 + Note_4 + Note_2 + Note_5 + Note_3 = Animation_movie I am using Flash CS4 and Actionscript 3.
How can I use displayObjects as animation frames?I have six symbols in my library I want to animate with a timer. The advantage would be the ability to change the speed of the animations, and the elimination of the messy timeline.
The only drawback is the initial setup of the objects in the library. I've tried switch/case design patterns, visible=true, and z-depth, but I can't get it to work properly. Any answers?
//setup code var timer:Timer = new Timer(100, 20); timer.addEventListener(TimerEvent.TIMER, countdown); function countdown(event:TimerEvent) {
How to copying display objects (sprites, movieclips etc) while keeping thier content (graphics, added display objects etc)in AS3? The most commonly suggested solution by Kirupa (
I want to create swf file without any DisplayObjects. All it has to do detect Events and save a Log. My main Application will load it as external swf file.
Is any way I can compile swf file do not extending Sprite or MovieClip?
there is a Class A, it has a timer which updates its x position periodically. So all the instance of Class A will update their own x position. There is another Class B which extends Class A and overrides the function which updates position to change y position and call the trace function.
Now what I do now is create two instance alpha1, alpha2 of Class A and other two instance beta1, beta2 of Class B.
- alpha1 is only instantiated, but not added to the stage.
- alpha2 is instantiated, and there after added to the stage.
- beta1 is only instantiated, but not added to the stage.
- beta2 is instantiated, and there after added to the stage.
- let say after few seconds, I remove alpha2 and beta2 from stage.
Now suppose the GC fires collection, who all would be collected ?
I've got another interesting Flash issue, and I was wondering if there was some weird case I had to account for. Here's the code: var c:DisplayObject; var t:Rectangle; c.width = t.width; trace(c.width, t.width); This results in output of: 0 13 I'm expecting '13 13' as the output..what would cause this to happen? It's sporadic, sometimes it'll happen, sometimes it doesn't. Is there some weird race condition I should double check for?
I am adding DisplayObjects to a Canvas using ContentContainer.addChild(c); Where ContentContainer is my Canvas object and c is the DisplayObject I have created at run-time. Some of these DisplayObjects also have children of there own which are added at run-time prior to the DisplayObject being added to the Canvas.
I then need to iterate over all the children of ContentContainer but the first time I do this, it says that ContentContainer has no children (i.e., ContentContainer.numChildren = 0). If I do it again tho then it is fine and returns the correct number of children. Is there something I need to call to get ContentContainer to recalculate how many children it has?
I have an array of Sprites on stage and want to now the rectangle that bounds them. I could do a loop and check each element's getBounds() but that could be computationally expensive.
I am very new to AS3, and I'm confused about how things that would have been simple in AS2 are so complex and tricky now. For example, I want to create a bunch TextField objects that, for some reason, rise up every frame (as in : object.y-=1; ).However, I also need each TextField to reference the TextField that was created just before it.
I tried creating a variable that would hold such a reference : ThisTextField.Ref=LastTextField; but - this returns an "Access of possibly undefined property..." error. It seems I can only have custom properties on mere Objects ! This is annoying because an Object doesn't seem to accept event listeners (remember, I need them to do something every frame). Is there a way to simply set custom properties on my TextFields, without having to use custom packages ? Or is there a way to use event listeners on Objects ? I've read something about strict mode which could allow setting properties on other objects - what are the risks of turning it off ?
ActionScript Code: private function drawMap(tile1:DisplayObject, tile2:DisplayObject):void { var _tile1 = tile1;
[Code].....
The idea behind this is to store custom sprites in an array and then feed the array to the drawMap function, which would use the sprites from the array to draw a map.
why Bitmaps are not considered children of displayObjects (at least from my observations, I think this is true). They themselves are displayObjects so therefore should be part of the display list. In fact, when multiple Bitmaps are in one MovieClip, it recognizes them as one child, a Shape instance. Could anyone explain this to me? I'm attaching an example with a few display objects in a movieclip.
I wanted to use dispatchEvent inside the MOUSE_OVER event of a menu item, setting the event type to a unique label which another displayobject somewhere in the display list (NEITHER a parent nor a child of the event dispatcher) would listen for, so that it could brighten. See the following lines of code:
in menu item class MOUSE_OVER handler: dispatchEvent( new MenuEvent( xml.@label.toString().toUpperCase()+"over") );
in "site button" class constructor - the thing I want to respond to your hovering over the menu by brightening (which over() does) : addEventListener( xml.@label.toString().toUpperCase()+"over", function( e:Event ) { SiteButton( e.currentTarget ).over(); } );
It doesn't work. I screwed around with capture and bubble parameters.
how to do what I want in a simple way? I spent 2 hours already trying to figure this out.
I'm new to ActionScripts and was tasked to complete a project. I'm trying to split a big image so I can send them to a http server in chunks. I'm using a recursive function below and increasing the DisplayObjects X position on every iteration. The problem is I get the same image in every iteration and checking the encodeByteArray string value is always the same.
Code: var currentTileIndex:int = 0; function renderNextTile(e:Event):void{ if(currentTileIndex < tilesToLoad){ loader = new URLLoader(); [Code] .....
Since flex memory management is poor, objects once instantiated dont die very easily (even when they go out of scope), one would need to check on various properties of components. I am using one such thing to know if the screen (which is a display object) is in current view. For this I am turning on a boolean property (currently visible), and I am setting it true on show event of the display object.
What I need to know is, which event (something opposite of show, e.g left?) could be used when the screen is replaced by another display object?
Something like focusIn and focusOut from dotnet.
Or if there is some property which could directly tell me if the display object is currently in view (hasFocus doesnt seem to be giving me expected results).
How does Flash deal with elements that are off-stage?Obviously Flash doesn't actually render them (because they don't appear anywhere on-screen), but is the process of rendering them still existent, slowing down my game as much as it would if the elements were on-screen?
Or does Flash intelligently ignore elements who don't fall into a renderable area?Should I manually manage removing objects off the DisplayList and adding them back on as the exit and enter the stage, or is this going to be irrelevant?
anyway, so i'm having an issue when getting the dimensions of an image that is masked. I want to get only the dimensions of the visible image, but AS3 seems to only return the height/width of the whole image, even the areas that are not visible (because of the mask).
I could create a custom class that extends the DisplayObject and overwrites the height and width getter to return the dimensions of the mask, but my problem is that I'm placing these masked images into a container DisplayObject, and scaling that container to fit the browser window.
I'm trying to simulate some fade in/out effects in Action Script 3 programmatically, using Timer class and controlling alpha property of the specified DisplayObject in time. In general it works and looks great. As I was expecting. But after I add some more child DisplayObjects to the parent Sprite it starts to behave weirdly. Children seem to not fade at the same rate as parent object and it visually noticeable, and ugly. There seems to be a short lag after parent already started to fade out and before children actually follow. Are there any additional measures I should take to avoid that? I do alpha manipulation only on parent object. I thought that'd be logical...
How does flash player handle objects when they are no longer on the visible stage? Is the graphical data still in memory? Does hittestobject/point consider them? Are enterframe and interval events still running?
In AS2 I would hold metaobjects (minimal x,y,width,height data) that would delete/create movieclips as the screen scrolled. Is this still a correct approach in AS3? If not, is there anything I can do to offstage display objects that improves efficiency, assuming around 400 are created initially?
I have Flash Media Server 3.5 on a Windows server, but I don't no much about how to make it work. Until know we have only used it for live streaming.I have let myself guide through the beginners pages and they're helpful, testing everything locally (applications/babyvultures/streams/_definst_/vultures.mp4).The problem is when I copy my project to the server; same structure, but no video. If I move the file to the applications/vod/media, and change the path in the script
So the big question is: am I able to have sub folders within the applications/vod ?
The thing is, that I want to publish videos from different sites that is also located on the server, and what I thought I could do, was to make sub folders, one for each site and then people can access their streaming folder via FTP, being able to publish their own videos with the advantage of rtmp streaming.
I have searched everywhere but cant seem to find out if the follow is possible.I would like to create a kind of image gallery that scrolls (which is straight forward enough) but instead of images on it i would like it to be folders?
Is it possible to customize the the UIloader source or parameters so that I can load multiple image folders for different sub-menu buttons. Right now, it is loading pictures from a folder called "images"; I need to add more folders like images2, images3, and images4 that would work the same way as pictures from "images" folder.