Optimization :: Increasing Flash Performance When So Many Sprites On Stage
Oct 22, 2010
I am setting out for a visualization project that will generate 1000+ sprites from dynamic data. The toolkit I am using (Flare) requires some optimization. I am trying to figure out some optimization techniques for Flash. How can I make Flash run fast when there are so many sprites on the stage, or maybe there is an optimization technique that doesn't involve generating so many sprites?
I'm devloping some library classes for flocking/steering behaviours on large numbers of objects (2000+). I'm finding that at < 500 instances, performance is reasonable. As the numbers increase, framerate bogs down.
I've seen remarkable performance with libraries such as Flint or Box2D with ridiculous #'s of particles / objects, so it should be possible to optimize / refactor my code to be a bit better.
I'm aware of the basic optimizations, such as bitwise operations and optimized for loops. Are there any more fundamental approaches I should be considering? For example, currently each instance is a vector-based MovieClip. Would working with BitmapData be more efficient?
I am trying to improve the frame rate of a game that draws many floor tiles. Currently, the floor tiles are vector graphics and stored as different frames in a movie clip. I wanted to experiment with rasterizing a floor tile and seeing if that would provide any frame rate boosts. I did this by converting one of my tiles (one of the frames in my movie clip) to a png and replacing the vector version of this tile with this raster version. I then tested two worlds--one filled with tile A (vector) and another filled with tile B (png).
In all my tests, world with tile A (the original vector version) outperformed the world with tile B. I am guessing that the reason I am not getting the expected performance gains is because I am still rendering the tiles in the old style and not using any strict bitmap drawing calls?why it is that this method fails to boost rendering speed? Would I have to switch my rendering code to strict bitmap draw calls?
We are starting to build a Flex 4.5 application (with LCDS) and a Spring/Hibernate based backend.In this context, is there a well-known list of overall performance optimization techniques that one could follow to ensure optimal performance on the client (flex) side? - especially, given that we anticipate users with poor bandwidths
i created 5 pages, each of which contains several movie clips (text, graphics, forms, etc). There is one specific page however that contains autogenerated content via. sprites. If i happen to land on this page, the sprites will appear, but when i transition to another page, they are still there except for the non-sprite stuff (disappear). Im ripping my hair out on this one, i managed to get a few of the sprites to remove but some are still appearing. Below shows the layout of the one thats not being removed;
i have the ingame sprite and it needs to be in StageQuality.LOW due to some prerformance problems, and the hud needs to be in StageQuality.HIGH... but they are in the same stage. I tried changing quality before rendering the ingame (to a big bitmapdata) but changing this property every frame is too expensive.
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?
What I am aiming for is to have a way to pass "kabinet", or "operativni" etc. to a function or smth... The code is used to control mc buttons on the stage. It works, but it's ugly and not practical, obviously. I tried with [var]onRollOver = function() { Inside a function, var being the parameter of said function ("kabinet", "operativni" etc.), but to no avail. Also tried with the with(var), thingy, but with the same result.
I'm widening the stage of a existing FLA, is it possible to widen the stage and to reposition all the layers of the FLA so they move in relation to the widing of the stage. Or do I have to reposition all of the layers individually?
I am creating a platform game that is 800 by 600 dimension where the camera scrolls with the player. The problem i am having is that if i want to draw a map that goes off screen the stage are that i can edit in can only go so far when i am creating the map however i drag an object further than the edge of the editing space i can see it when the camera scrolls over to it in game but when i do this i cannot easily edit the objects that are not in view in the editing window. I can slightly increase the size of the editing window by changing the dimensions of the game to 2880 by 600 editing and then changing back to 800 by 600 but still i can only enlarge it up to 2880 because that is the maximum. Is there any way i can edit very large objects like a map that are way bigger than the stage dimensions?
I notice that Flash makes changes to a stage size to the right. Is there a way of making the change so it expands out from a central point, i suppose like photoshop and similar. This has caused me some problems in the past when a client has asked for the site to be increased or reduced in width for example, and it can take a considerable ammount of time to move everything accordinly
I have a timmer on the Main Stage, I want to Call Multiple Sprites to stage, in order, one after the other, and remove them when the Tweens Inside them are complete. The the first two Sprite's containing sample text do display, yet the third does not.
I need to call many sprites to the stage. But I need them to display and then remove from stage.
function Main() { var newBordText:GoldBordText0 = new GoldBordText0(); addChild(newBordText);
This code creates a two arbitrary sprites, box and circle, and puts them on the stage. The circle is the child of the box.The purpose of the code is to enable the sprites to resize when the stage is resized. But the sprites only change size when the stage is smaller than their original size. When the stage is big enough, the sprites don't get any bigger than their original size. Throughout, they maintain their proportions.[code]
In AS3 on Android is it bad from a performance perspective to attach mouse event listeners to individual sprites rather than to the stage? I am writing an app for an Android phone using AS3 in Flash Builder. The app has multiple screens that respond to user touch. The screens are arranged in a hierarchy and show list data so that when you click on an item in a list you are presented with a new screen with a new sub list on it.
I have been using an event listener to detect mouse / touch input and based on something I read that indicated that performance is much better if you keep the number of objects you are listening to to a minimum I have attached the mouse listeners from each screen to the stage object.
This all works fine but I am finding that as I move between screens (and they get popped or pushed onto the dislay stack) I have to keep track of alot of adding and removing listeners to the stage object. If I don't then windows higher up the hierarchy than the current screen keep receiving mouse events.
If I used listeners attached to sprites in each window then when the window was removed from the display even though it is kept in memory (ready to be popped back when a child window is closed) it won't receive any mouse events....
Performance doesn't seem to be impacted using listeners directly on sprites when using my HTC phone to test with, however I obviously don't know what it will be like on other phones. Does anyone have any experience either way or a view on the best approach?
Is there a performance and/or memory usage difference between these two scenarios? Scenario 1: N visual elements all added to stage; N-1 have visible = false, 1 has visible = true; Scenario 2: N visual elements, only 1 added to the stage at any time.
just uploaded my first flash website..and I'm having difficulty working out how to get google to 'see' it. I've registered the site with google and have a very specific phrase in the <title> tag of the html code but the more I investigate, the more complicated it seems..Can anyone point me towards a step by step tutorial or something to get my site in the top 10 results?
Is there any program or setting for "pointing" flash programs at my graphics card rather than leaving it to the processor and RAM alone? I am running a specific frontend software that is a flash executable- unfortunately it lags heavily on execution despite the fact that I have a very nice video card installed.
I have read all the documentation and more on optimizations. My question is that if you have to resize sfws for different mobiles is it best to have a res thats the biggest mobile and the rest we can use fullscreen. Or is it best to make a smaller swf and have it size up to full screen. Obviously we are not going to create an swf in 20 sizes. By the way, is it MORE processor hogging for a mobile to size down a 800 by 600 standard swf than to downsize an swf thats only a little larger than the mobile screen.
I'm itching to find the most effective way of importing my illustrator vectors into flash but keeping the file size as small as possible. At the moment i'm literally copying my vectors in illustrator and pasting them in Flash, it clearly works but the file sizes seem really high and its hindering the performance of my fla. Is there a more effective way of exporting? or optimizing the imported vectors once they're inside flash?
Will I take a big hit in performance using nested ViewStacks? Should I strive to handle all navigation in one ViewStack and push children manually or will the affected performance be negligible?
We have a medium size Flex 3.6 application that contains around 20 different page views (managed via a single lazy ViewStack) each having multiple components. Most use custom renderers.All model data is loaded at startup and changes to model instances are communicated via binding and/or collection change events.Once the user has viewed each page at least once, all page views are instantiated and happily listen to update events.Which in effect means that each time a model instance changes, all interested views receive that event and compute derived data or trigger item-renderers.I have tested and confirmed this behaviour in a proof-of-concept application. Even when setting a list to being invisible, it still listens to collection change events and invalidates any renderer affected.What would you do?
we are doing a seamless interactive video-game-video project, but are having optimization problems. Because the client wants a full-screen option for both the video and game segments, our file size is too big. Any advice on how to minimize load time yet retain a relatively high-quality image standard? The h.264 image quality, but there are licensing issues, and we need the transparent alpha channel for the video segments.
So maybe I should have thought of that BEFORE doing all my site in Flash, but being a newbie it's a mistake I HAD to make. Now that my client's site is done I realized that I don't know how to make it search engine friendly.