ActionScript 2.0 :: Restoring Objects Depths From SharedObject?
Mar 23, 2011
in a pseudo-3D chess game a user can move pieces on the screen which also involves resizing them according to the law of perspective.
The pieces positions are stored in a SharedObject so that next time the SWF is started the pieces get to the position they were left. Problem is that I also need to store each piece's depth which is being changed during the game. To store the depths is trivial. How then to assign the depth to each object? Depth is a read-only property, is it not?
I can iterate through the all pieces comparing their scale and swapping the depths is they do not correspond to the size of the piece, but this seems to be a bulky code.
I've been trying to sort objects depths based on their Y position but have not been able to do it efficiently. I was able to successfully sort objects with a selection sort algorithm and a quick sort algorithm; however, both have only been partly successful. Selection sort gets about 8-10/30 FPS with 13 objects and gets about 14-18/30 FPS. This is not good enough as I figure I could have as many as a hundred objects to be sorted at once.
After digging around, I found that array.sort() is more efficient than a quick sort implemented in AS3 and that calling swapChildren() or swapChildrenAt() at every swap was bogging it down. So now I am copying the objects array and sorting it with sort() and then comparing the two and swapping displayObjects so as only to call the swapChildren() or swapChildrenAt() method once per element. It appears to be running, and at full speed, though it won't swap correctly. Here is my code:
I have 3 graphic objects (obj0, obj1, obj2) on the screen which the user may move with the mouse. I need the final locations of the object to be stored and next time the SWF is started, the objects to be placed where the user left them. For this purpose I use Shared Object into which I push all my objects:[code]function saveParameters is called by mouseclick on a button and check point 2 shows all the three _x coordinate correctly which means that the parameters has been wtitten to the disk.However when I restart the SWF, the first check point traces objects_parameters.data.parameters=undefined,undef ined,undefined.I.e. it cirrectly traces number of objects stored (three), but for some reason all these three objects are undefined and their _x and _y are not available.there a way to format AS code code here so that it will look like in my Dreamweaver to be more readable?
I've installed developer version of Flash Media Server 4.5 and trying to get remote object, but no matter how I call my object all i get is this error .I've rad configuration guide and it told me that I should set StorageDir for shared objects, enable RPC (<RPC enabled="true">) and allow shared object (<Allow>users</Allow> in <RPC> - <SharedObject> tags)
I have 3 movie clips. Each one is a button, on mouse over on each I want the button rolled over to make the other 2 invisable to the viewer, and then on mouse out i want them to be restored.I have been trying to figure it out with no luck. Tried setting something up with 1=visable 2=non, and use these commands on mouse events.
I was just putting the finishing touches on a flex project that loads files from a second project.
In attempting to delete a second project, I somehow deleted the project I needed. I confirmed that I wanted to delete the files. I have a backup but it is a couple weeks old now. I feel like throwing up.
I have a panel as a sprite containing a gallery of images (only 8 images at the moment!). Each image has mouse rollOver and mouse click event listeners, which work fine initially. Problem is, when I hide the panel using visible = false, then show it again, the mouseEvents aren't firing on the gallery iimages.
Strangely, the same thing happens if instead of using visible true/false, I move the panel off stage and then back on again.
ts an interactive gallery where when a photo is selected it plays the movie clip and the photo grows to fill the screne. The problem is, since the animations take part within the movie clips and all the movie clips exist on the same layer when they are selected and grow to fill the screne they are being hidden behind all the movieclips infront of it in that layer I know that there is an action to bring movieclips to the highestdepth or to front on click/release but i do not have a clue where to start
I am trying to remove all instances of the many movie clips located inside a main holder_mc on the stage. I want to remove these on the click of a buttonSomething like this
onRelease() { <<<<<!---- REMOVE ALL MC'S FROM HOLDER_MC ----!> }
Are depths particular to the timeline of the movieclip you refer to it? In other words, let's say you have actionscript to duplicate a movieclip 100 times, each time putting the new one on the next depth. But the code and the movieclip to be duplicated are themselves inside a movie clip. Are those depths inside that movieclip?
So for instance, let's say the parent movieclip lies on the maintime. And on a layer above that is a button. Are those duplicated movieclips going to be visibly above or below the button? A tangible example: I would like to have a smoke/steam effect that uses duplicateMC and depths. But I need the effect to be underneath other movieclips at certain times. Can I just contain the effect inside a movieclip that sits on a layer below other movieclips on the maintimeline? Or do I need to stop the effect and do a swapdepth with whatever the last depth was?
I have 3 containers on stage holding various buttons but these containers are created in seperate Class files....I want to place the 1 container over the top of another container similar to the way I use addChildAt to specify depths.....is there an easy way to do so?
*I can't post the file due to the company policy, so I'll do my best to explain. 3 movie clips: slide 1, 2, and 3. Each loads an external image.
Layers (how I have them set up): slide 1 slide 2 slide 3
The slides have a 3d feel, as if they are in the distance. When the user clicks one, the slide(mc) motion-tweens towards the screen, while the other 2 stay back. Obviously, if slide 2 comes towards the screen then slide 1 will be over top of it DUE TO layer structure (above). And of course, 1 & 2 will be over slide 3. To get around this I made a "current" layer over top of all the slide layers. So if I click on slide 2/3 then the tween is up on the "current" layer instead of the "slide 2/3" layer so that it's the highest.
I'm making a website for my business. I want this site to run similar to an OS UI. The first issue I've run into is swapping between "window" MC depths. I'm not quite sure if its just that I need to add a mathematical variable to each one every time it is clicked or how to getDepth of the highest "window" MC in order to put the desired "window" MC above it.
You can download the .fla file <a href="www.dpr.150m.com/images/index.fla">here</a>.
I have some movieclips stacked on top of each other, i've got them swapping depths onRelease, but I want them to swap in opposite direction to what they are now. Check out the link below, basically you click the 2nd or 3rd clip to call infront of the 1st, but i want to click the 1st to send to back and so on.[URL]..
Code as follows. Does anyone know what i would change to reverse the order?
var mcs:Array = new Array (first_mc, second_mc, third_mc); var mc:MovieClip;var total:Number = mcs.length;
I am new to actionscript but I am fairly confident in messing around with it. I have been trying to make a particle engine for two days now and I'm at my wits end.
What's funny is, the particle engine works fine. i have piggy backed off of somebody elses particle engine and modified things to how i need them (And stripped it of a few unnessicary things..) what my problem consists of, is I am trying to make the particles go behind another movie clip. this movie clip is a frame (to make it blend in with the webpage it is displayed on) and it must always stay on top depth no matter what to give that affect.
Its been a while since I've done anything in AS3. I was hoping someone could point me in the right direction. I am working on a type of menu where there are 6 cards and on roll over of one of the cards it is brought to the front of the stack. What is the correct method of doing this in AS3? Can someone post a quick example or point me in the right direction to a link that does a good job covering this. I did a quick search and didn't find anything right away that did a good job explaining so I thought I would head over to AS.org
Are depths particular to the timeline of the movieclip you refer to it? In other words, let's say you have actionscript to duplicate a movieclip 100 times, each time putting the new one on the next depth. But the code and the movieclip to be duplicated are themselves inside a movie clip. Are those depths inside that movieclip? So for instance, let's say the parent movieclip lies on the maintime. And on a layer above that is a button. Are those duplicated movieclips going to be visibly above or below the button?
A tangible example: I would like to have a smoke/steam effect that uses duplicateMC and depths. But I need the effect to be underneath other movieclips at certain times. Can I just contain the effect inside a movieclip that sits on a layer below other movieclips on the maintimeline? Or do I need to stop the effect and do a swapdepth with whatever the last depth was?
I want to swap depths on movieclips overlaying each other but instead of the new clip on rollover just popping up over the other one, i want it to fade into the top.
I'm trying to create a Flash Movie that emulates those poetry magnets. There are a bunch of buttons (magnets) on the stage and when you click on one, you can drag it and place it next to another. That way you can write sentences by moving the buttons (magnets). The only problem is that I want it so when I click on a button (magnet), that it sets it's depth higher than the other ones so it will look realistic, like you are actually moving it over the others insted of over some and under others. Is there anything that I can add to the on (press) handler to change the depth of the movie clip being clicked on?
I have a timeline animation various movie clips with play bk and forward controllers for when it is pressed it display (grows, rotates etc), is there anyway of having it so on each layer there is a swap depth command to make whichever button is pressed make the mc's appear at the top?
I'm currently working on side scroller that has an isometric-type perspective (think Double Dragon) and the only thing I could think of to use to manage the depths of the MCs was a bubbleSorting algorithm.
[Code]...
Now this works fine (because I don't have a huge amount of MCs to sort), so I guess this is more of an academic question. As far as I know, bubblesorting is pretty much one of the worst sorting algorithms out there. Has anyone successfully adapted a better one for this purpose? Not trying to get you to post your code as much as just an idea for me to play around with because I'm a geek like that.
I'm working on a medical imaging application and was wondering if there is a way to display 12-bit per pixel JPEGs in flash/as3? I'm assuming I'll have to convert the image into a more flash friendly format, but was hoping to avoid that as keeping the original quality of the image is vital.
In my code I am creating MCs and having them drop down the screen at varying speeds, but am having a hard time thinking of an easy way so that if one MC 'overtakes' another slower-moving one it will be displayed above it.I really don't want to have to run a hit test every frame for every MC through the array of MCs..
I'm having trouble managing the depths of my movie clips.I've got a startDrag() function and a stopDrag() function. Whenever I rollover another MC, I want the depth of that object to change to 1+ the object it rolled over.(I apologize if my English is poor)This is as far as I got, but cIndex returns the depth of the object that is currently being dragged; not the object it's hovering over... Is there a way to get that depth?[code]