Actionscript 3 :: Runtime-loaded Assets Consume Memory/resources If They're Not Being Used?
Mar 12, 2012
I'm making a game for the browser that has a lot of assets, but not all of them are needed at once. I'm deciding whether to embed my assets at compile time or load them at run time. I'm not concerned about loading time -- only the performance of the game during run-time.
If I load these assets and store them into memory for eventual use later in the game, will they consume system resources just being latent in an AssetLoader? Will that affect performance?
If I embed these assets, will they consume system resources just being latent in the compiled SWF?
Is there a difference in performance between these 2 methods?
View 2 Replies
Similar Posts:
Dec 1, 2009
I'm trying to load a swf compiled by the Flex SDK into a swf exported by the Flash IDE and instantiate the assets by way of getDefinition(). Normally this works fine with assets exported from the Flash IDE then loaded into another swf also from Flash IDE.This is how I could normally do this using only the Flash IDE:Loader - > Using same ApplicationDomain - > getDefinition(class)Now, using the 'Test.as' compiled from Flex SDK using the [Embed] metadata tag:Loader - > Using same ApplicationDomain - > getDefinition("Test_" + class)The problem is I'd rather not have to keep track of the asset libraries loaded to prefix the class name I'd like to get (('Test_" + class) vs (class)). Is there any way of doing this without referencing the library the class is being pulled from or without accessing the original loader? This way I don't need to know which swf the asset is coming from, just the class name that I could instantiate from the current ApplicaitonDomain.
View 1 Replies
May 10, 2011
By default, Flex uses signed .swz files to hold the Flex Framework classes. I noticed that under Adobe Flash Builder 4 > sdks > [version] > frameworks > locale > [locale] there are multiple languages supported.en_USen_GBzh_CNetc etcThe files in these directories vary in that they contain a "_rb.swc" at the end of each file. Files include datavisualization_rb.swc, spark_rb.swc, framework_rb.swc, etc etc. These are different from the rsls signed framework resources stored as .swz in framework .rsls. Since localized signed versions of the framework don't appear to be available, can I use these locale > [LOCALE] .swc versions instead as RUNTIME SHARED RESOURCES?
I DON'T want to compile different versions of my app for each locale, rather want to link the localized framework resource libraries at runtime. It would be nice to have the contents of the sdks > [VERSION] > frameworks > locale directory copied into my bin-debug/bin-release folder when I build my app.Is this possible? How would I set this up in Flash Builder 4?My assumption (I know about assumptions) is that there is a way to set up the Flex Build Path or supply compiler options that would cause all of the locales stored in the locales > [LOCALE] folder to be included into the bin-debug/bin-release of the project.
View 1 Replies
Feb 19, 2010
I'm building an avatar class that will allow a user to swap out character assets during runtime. The idea is pretty straight forward. The artist I am working with designed the art assets for the individual pieces of the avatar and performed the animations in flash. Since the animations were created in flash using vector art as opposed to pre-rendered 3d, I want to simply replace each individual movieclip within the animation with the asset selected by the player.
Problem:The issue i'm running into is that the animations have several key frames. My thought is to load the avatar object (an external swf) into my main application. Once loaded, I obtain a reference to all library assets that are used in the animations. For example, to get the face, I have something like:
Code:
if(this.loaderInfo.applicationDomain.hasDefinition("face"))
{
[code].....
View 4 Replies
Mar 8, 2011
I have been handed a project that was built to embed all assets at compile time and I need to update the app to load assets from a remote server instead. Right now everything is being embedded as follows:
[Embed(source="assets/gfx/tutorialBg.png")]
public var tutorialBg:Class;
[Embed(source="assets/gfx/tutorialStraightArrow.png")]
[Code]....
These Class variables are being referenced all over the app to place the assets so I'm hoping to be able to update the code to load the assets and store them in these same Class variables. So far the methods I've tried have not worked. I've tried using URLLoader and it loads the images fine, but I'm not then able to extract the image and cast it as type Class to these variables.
View 0 Replies
Mar 26, 2009
This is the concept I want to get into code:
1) Have a Document Class attached to the Main.swf
2) Have a Assets.swf that has all MovieClips that set to Export and have been given actual Classes.
3) Have the document class Load the Assets.swf.
4) Once loaded, be able to create instances of the MovieClips from Assets.swf by writing the code in the Document Class of Main.swf
I can get all this to work.. However what I am finding is if I have a public function on the Document class that creates an instance of something from the Assets.swf, lets say var okTest:TestClass = new TestClass(); I have to also import it in the Document Class (import com.test.TestClass). When I compile it, yes it works. If I remove the Assets.swf file it doesn't display. Ok.. But I've noticed that the Main.swf file is including all the imported classes (eg: com.test.TestClass) so the Main.swf filesize is pretty much the same as the Assets.swf file.
I also ran it through a decompiler and can see yes in fact Main.swf is including all those Classes from Assets.swf because I'm trying to access them from Main.swf and had to import. So the biggest question is how do I go about this properly? Being able to load the asset file that has movieclips etc that have custom classes. Then create instances of those classes within the document class but only if Assets.swf is loaded.
View 2 Replies
Sep 2, 2011
I have an animated character swc that is an empty skeleton basically (has all the body parts, animations, and functions/vars). I want to essentially put different clothes on that character at runtime so I don't have to have many copies of this character in my resources.
For example, I have 'skeleton' (the non-clothed model) and 'Bob', 'Jane', and 'Mary' characters. 'skeleton' is animated and fully works as an exported swc, and to get the other characters in their clothes/skins, I open up Flash CS5 and replace the movie clips with the 'clothed' versions of the components. To clarify,'skeleton' has "body parts" as movie clips that are all animated on the timeline, such as "head","face","left arm","right arm", etc. I open up 'Bob', who has the same exact design as 'skeleton', with the exception that 'Bob' has all the clothes and such as differently-designed movie clips. The size, shape, orientation, and reg points are all the same across all the components. After I've replaced all the movie clips in 'skeleton', I export it as a swc named 'Bob.swc' and I do this for all the characters.
What I'm asking is, how can I do this process ^, but at runtime instead, so I don't have all these duplicate root swcs ('skeleton' has a lot of frames on it) so I can cut down on a bunch of space? So I can do something like:
// bob gets all the actions and animations of skeleton
var bob:UIMovieClip = new skeleton()
// replace the body movieclip with a new looking one
bob.body = resources.bodyassets['bob']['body']
View 1 Replies
Sep 11, 2010
This is sort of a two part question. I'm building a flash image viewer to be a portable age-restricted module (violent video games). Basically, it will load any number of images from a CDN and require the user to enter their birthday before viewing it. Simple stuff. The problem is that, per company policy, we can't allow those images to be directly accessible by any means of sniffing (eg, watching your Resources/Net tab in Webkit/Firebug, or watching XHR if we loaded them that way). So, I'd like to get your opinions about the best way to approach this.
At first I thought to have a server-side script that loads the image (eg via PHP) by passing a var that can be decrypted but with a dynamic salt, eg, using a method that is very unlikely to be discovered (for example, having the salt be embedded throughout the string), but that defeats the purpose of the CDN as all requests would be geolocated to the server.
Then I thought that loading the images via sockets would be a good solution, however, I'm having trouble converting the binary image (after removing the response headers) to a Bitmap.Is there a better way to go about this? I know that realistically it's impossible to completely prevent the content from being linked to (eg someone could screenshot the flash) but my goal is just to take steps on our side to prevent that from happening by native means. Below is the socket code (irrelevant parts removed), if that helps any.
package com.std.socket {
import flash.system.Security;
import flash.net.Socket;
import flash.events.*;
[code]....
As I'm writing I'm thinking that in SocketRequest::evt_socketResponse(), the this.sock.readUTFBytes() bit should really be:
this.request.response_parts.push(this.sock.readBytes(this.data, this.data.length, evt.bytesLoaded));
and then remove the headers from this.data, but TBH I'm not super ByteArray-savvy.
View 1 Replies
Feb 17, 2011
I need to load an external resource and be able to reuse it (create new objects based on that resource). I need to create multiple objects using that resource and I don't want to load it again over and over every time I need to use it. My question is: How can I load a resource (in my case, it's a collada file ".dae") once and be able to reuse it again?
View 1 Replies
Feb 20, 2010
How to write an AS3 object's memory location for example to a label?
View 3 Replies
Jun 7, 2011
Suppose that I have two applications running on the same page. I have the Libraries compiled into the SWF file: [code]Is RSL intended to just improve the download time (via caching) or does it also lower the memory foot print of an applicaiton?
View 1 Replies
Dec 23, 2010
Not talking video here. Talking interactive apps, like chat. Ours crashes at about 500 connected users. When I report this I'm told "make sure you're not creating too many objects serverside" or "increase the JSRuntimeSize setting in your application.xml file to the max". Have now done both of those things but still get this out of memory error. Let's say I optomized my app and got 100% more connection capacity. That would be 1,000 connected users - still nowhere near enough. Are my dreams of 6,000 or 10,000 connected users enjoying all of the fruits of the FMS interactivity pipe dreams?Is it not meant for sessions of that size?
View 3 Replies
Jan 11, 2012
FMS has print error 'JavaScript runtime is out of memory', Is their any way to check the js runtime memory used for specific instance?
View 7 Replies
Jul 22, 2010
I used to write programs in the android sdk for google phone. One of the android developers guide that I read says that it is more efficient to declare a const public static const NO:String = "no";
var1 == NO;
var2 = NO;
than to do this
[code].....
View 1 Replies
Jul 23, 2011
I'm working on an AS3 project that must load a lot of external files; images, sound clips, movie clips etc. The program first loads an XML file that contains the file names of all assets needed by each class. From that point on I'm not sure what would be the best way to distribute those assets.I thought about making a dedicated assets class that will load everything the XML object describes, and then pass it to each class' constructor so they can access the objects they need. This seems like the "tidiest" option, but is there a best practice way for managing loaded assets?
View 1 Replies
Jan 30, 2009
Can anyone explain the model for actionscript in externally loaded SWF assets? For example, suppose the stage owner uses methods from Class1 and that it loads an SWF file with an asset that also uses methods from that class. This means the code for Class1 is included multiple times in the application?
View 3 Replies
Nov 11, 2010
I build a project with Flash Builder. I copied everything from the "bin-debug" directory to a server (including all images we use which are under /assets).
After I have updated the project, and a few images, i recopy the primary .SWF file (Main.swf) and everything under assets up to the server again. Unfortunately, when I run the application, I am clearly running all of the updated code but the images have no updated.
The new SWF was definitely copied up as well as the new images (I can say that with 100% certainty), and additionally, I cleared my Flash Cache, so that's most likely not the problem either.
[Code]...
View 1 Replies
Jul 30, 2009
I have a widget containing a number of displayobjects, i.e. up arrows, down arrows, tab 'buttons', backgroundrectangularblocks, sliders, company logos etc.I am currently creating these displayobjects using the graphics class with parameters taken from an external file, things such as fontsize, font, colour, width, height e.t.c and adding them as children of "container" sprite objects for easy manipulation and referencing later can these assets be loaded in their entirety externally, rather than being created using graphics class draw methods (which I want to avoid) as some of the things I need to design cannot be created in pure actionscript very easily (if at all?), and then used or do they always have to be in the library and instantiated from there?
if the first question is yes they can be loaded externally, this question probably isn't needed; however, if I have to put the items in the library and recompile each time a client wants to use say a curved blue up arrow instead of a yellow one and then decides he wants a yellow circle instead then how do I write the code to do the following:-Say on my first ever compile I have 'upArrowBtnset1' in the library, I instantiate it and use the instance name to access it in the usual way using standard code,
upArrowBtnset1.addEventListener.... container.upArrowBtnset1.scaleY = .3 e.t.c
Now if they send me a second set of 'upArrow' graphics they want to use I could either update all the upArrowBtnset1 assets with the new graphics meaning the original set is no longer available to the client and I would either have to hold a "original set" FLA file with the first set of arrowbuttons or I could import these to the library as upArrowBtnset2 and a third set they send as upArrowBtnset3 and so on each time I am sent some new assets; I would then recompile them into the SWF and adjust the references to the new assets within the code. In the code, for each instance of "upArrowBtnset1" I would have to rename them to "upArrowBtnset2", recompile and send it back to the client.
Because I have already abstracted the font/colour/size choices out to an external file, they can change that as much as they like without a recompile which is what we want. The problem comes if they want to use set1 again and haven't kept the original "set 1" compiled SWF. It would be easier to abstract the 'setchoice' also to the external file. The SWF would over time build more and more available sets that they could use by just changing an external variable.
For example, if the designer wants to use set 1 on Monday, set 2 on Tuesday and set 3 on Wednesday I want to make it so they can just adjust an option in an external file to "setchoice = 3" for weds instead of either having to recompile the swf each time or they have to have 3 versions of the SWF for each asset set. The idea is that as more and more assets are added in, they have more and more choices. Ideally, in an external file there would be a list of assets and links to where they are loaded from. (i.e question 1 above).
If I have an external file (say XML) which holds the setchoice option that the designer wants to use (say they want set3 today) my 'generic' code has to be something like upArrowBtn(setchoice).scaleY and every instance in the code where that object is used I append the 'setchoice' as chosen by the designer from the external file where (setchoice) is retrieved from something like var setchoice:String = "set3"; from the external file (I am currently abstracting all the adjustable variables to a configuration.as file. I will work on using an XML later when the principle of external files works (I hope!);
Is it possible to import assets from external sources and then use them in the SWF as if they were in the library? The loader class? Is this just fraught with danger I wonder.
Essentially I am being asked to remove as much as I can from the SWF so that if the client wants to change the positioning of things on the stage or the text on buttons or change the style of the buttons or the company logo they don't have to come back to us to ask for a recompile of the SWF for each tiny adjustment. Inevitably SOMETIMES a recompile will be unavoidable (such as if they want the widget to suddenly be twice as wide (i.e. the stage). My code already handles some of this using stage.stageWidth and then positioning objects relative to other objects already on the stage using this value and centred so that just changing the document properties is all I would have to do and everything else adjusts proportionally. I am trying to make this as reusable as possible with as little effort from myself as possible to save our company wasted time.
After all that waffle, my question is this, if I can't load all my buttons and assets and things externally, how do I write the code for this:- I have a library asset called upArrowBtnset1 and another called upArrowBtnset2. Instantiated with say upArrowButtonset1 and upArrowButtonset2 The code would normally be upArrowButtonSet1.x = 100; upArrowButtonSet2.y = 300; but I need it to be upArrowButton(setchoice).x = 100; upArrowButtonSet2(setchoice).y = 300; where (setchoice) comes externally from var setchoice:String = "set1";How does the code change if the (setchoice) string was named not at the end i.e 'button(setchoice)UpArrow'?
ActionScript Code:
var numClips:Number = 5;
for (var i:Number = 0; i < numClips; i++)
[code]....
I need to do something like, getChildByName("mainTab"+i).addChild(myMovieClip) ? or maybe this["mainTab"+i].addChild(MovieClip)?Is it possible without using .name?
View 0 Replies
Feb 10, 2011
I want an air application to be able to update the assets it uses, but minimizing the download needed, so only downloading files added since it last updated.I'm thinking this would include a server portion which would zip the needed files based on a version number? Has anyone implemented anything similar / got any thoughts on the best approach to building this sort of system?
View 1 Replies
Jun 29, 2010
I'm getting this error with one chat application. According to
[URL]
..I should "Check the JavaScript runtime size for this application in the configuration file". By default it was set to 1024. Any attempt to increase it causes FMS not to start again. This problem just came out of the blue. This same chat app has been in operation with no trouble for about 10 months. I restart the server machine on which it resides before each new chat session.
View 2 Replies
Dec 30, 2009
I would like to know if it is possible to consume a AMF Service using .NET. I would like to consume a AMF service written in PHP using my ASP.NET Application, that is possible?
View 1 Replies
Mar 4, 2010
I am loading an SWF file into another parent SWF. I remove the loaded SWF using the unloadAndStop() method and set the loader to null. But the instance of the loaded SWF still remains there in the memory.
View 2 Replies
Mar 4, 2011
I'm using the code below for loading my flvs. What kind of function and parameters are needed to make sure the video is cleared from memory? In order to stop the sound, I'm using SounMixer.stopAll() which works fine to stop the sound, but when I unload the video and stop the sound, I can see that memory is still being consumed. I've been reading about nulling a netstream, but since I'm loading my flvs locally for this project, how do you ensure that the video is fully unloaded from memory when not using a netstream?This example dynamically creates an FLVPlayback instance. To run the example, follow these steps.
1.Place the FLVPlayback component on the Stage at 0,0 and provide the instance name player.2.Replace videoPath with an absolute or relative path to an FLV file.3.Save this code as FLVPlaybackExample.as in the same directory as your FLA file.4.Set the Document class in the FLA file to FLVPlaybackExample.
package
{
import fl.video.FLVPlayback;
[code].....
View 5 Replies
Mar 15, 2010
I have a huge memory handling headache in a project I am working on. This is basically what the program does. I have a main shell swf that loads a xml document. This xml document points to a interface swf and many content swfs. The interface swf has my container, buttons, and preloader. The content swfs holds images, audio, and other interactions.
My shell loads a content swf and adds it to a container movieclip with in the interface swf. When a new content swf is loaded, it needs to crossfade on to the old swf.Each content swf is set up as such: all of the content is in a movieclip that is exported on frame 1. There is also a large string of text that sits on frame one that is loaded into the interface swf.
1 . I can't figure out how to load / unload the swfs to set them up for garbage collection while still crossfading them when they load.
2 . When I built a test to see if the swfs would unload correctly, It would not unload any bitmap data within the swfs.
My current code is below. This works fine functionality wise but nothing is removed from the memory. I can't figure out how to add an unload script without breaking the crossfade.
Code: Select allvar slide:MovieClip=null;
var isLoading:Boolean=false;
//buildSlide is passed a content swfs url
[code]....
View 1 Replies
Jul 18, 2006
I have a question about movie clips and levels. I have a small contact form. Everything is working fine. The client wants to add more content so I need to make the whole SWF scrollable. My first instint is to just make the entire swf an MC and then add the ScollPane. My problem is that once I make the various input elements into an MC they stop working. I figure this has something to do with levels. I am afraid to play around with _root too much as this swf is loaded into another swf at runtime.This is just a little chunk pulled out form the code. contact_us is the name of the stage MC.
[AS]
for( var elem in inputs) {
contact_us.inputs[elem].border = true;[code].....
View 2 Replies
Jul 20, 2010
i'm trying to invoke a webservice written in nuSoap from a AS3 Flash app; i've read that,starting from AS3, webservice support has been removed in Flash (really don't understand why...); i've tried thid party solutions (be.wellconsidered, carlo alducente) but they don't work with the wsdl that nusoap generates.
View 1 Replies
Apr 21, 2011
I am creating a Restful WCF web service which will need to be consumed by FlashBuilder 4. Is this possible? If so, how can I go about doing that?
View 2 Replies
May 31, 2010
Is this at all possible? I just finished re-building my entire portfolio site in AS3 because I can't change the frame rate for loaded content in AS2. Now I find out after completely rebuilding this thing that AS2 content gets stuck in Flash Player 9's memory and won't erase on Loader.unload. All my work from years back is in AS2.
View 0 Replies
Nov 21, 2010
I've a file named, Load.SWF in which I am loading RFC.SWF on first frame with following code... container_MC.loadMovie("RFC.swf");Simple code. 'container_MC' is a movieClip instance on the stage in Load.SWF. The file RFC.SWF contains 4 frames with a stop() action on 1st Frame. Now I want to create a button in my Load.SWF file to send the RFC's playback to frame 3, but I am unable to do this. I am using the following script on a button in Load.SWF, but its not working... on (press) {
container_MC.RFC.gotoAndStop(3) }
I am working with a AS2 file in Flash CS3.
View 1 Replies
Jan 13, 2011
I'm trying to consume Google Finance API on a Flex Project but with no success. I want to use the ClienLogin mode, am able to get the auth token, but then I can't seem to get information from any of the feeds!
I've tried some of the few examples I found by Googling but still can't get it to work...
View 2 Replies