Flash :: Objects Not Being Removed Without System.gc() Call?
Jan 23, 2012
After having some trouble with object deletion, I ran a simple test:Created a simple class with a weak reference listener for Event.ENTER_FRAME.Added a trace("I Exist!") call to the listened function.Instantiated a single instance with one reference in the Document Class.his worked as expected - the SWF file did nothing but print "I Exist!" every frame to the console. (In debug mode, of course.)What I did next did not work as I expected:I set the only reference of the object to be set to null on a mouse event, but the messages from the event listener of of said object still appeared in the console after the mouse event was fired and the reference set to null - meaning the object still existed!Calling System.gc() in the document class IMMEDIATELY stopped the event listener from printing further messages and seemingly deleted the item.
From what I understand, calling System.gc() is discouraged, but as it seems from this simple test the garbage collector is a big FAIL.Am I doing something wrong here in trying to dispose of the object, or should I simply call System.gc() every time I want to get rid of an object..?
View 4 Replies
Similar Posts:
Jan 25, 2012
I am working in on a Flex / Air application (using PureMVC) written virtually entirely in ActionScript 3 (i.e. we use very little of Flex). View components are added to a Canvas object in the main application window and these Views then load other movie clips, images files, etc.When I remove a View from the stage, I do so using application.canvas.removeChild(). This fires an event in my PureMVC mediator for that View, which removes any event listeners that were set up and everything appears to be dandy.However, the movie clips are still playing in the background. They are not causing any trouble on screen but they are simply there, playing somewhere in memory (e.g. I can see trace statements from them) and I want them gone. I suspect the View that was removed from the Canvas is still there too, but I can't prove it.
Setting the View to null doesn't do anything. I'm surprised that AS3 doesn't include any method to simply and effectively destroy a Display Object and all of its children.Is the only way to do this to tediously unload all of the movie clips, etc. and then hope that Flash will clean them up?
View 2 Replies
Aug 8, 2010
I've noticed that using stage.addChild(obj)(i.e. creating objects on the fly) can slow down frame rates.I was told by several sources that one way to speed up a flash game engine (or any animation where instances are generated as you progress), is to reuse objects in what is known as object pooling.
First of all a bit of background:The game engine I'm working on can be found at: http:[url]....Most objects (i.e. bullets, particles, enemies...) are exported for actionscript, each with a set of actions that are performed each frame, and another set of actions upon being created.Each class has an array called instanceList, which keeps track of all objects currently within play.The main timeline contains an event.ENTER_FRAME function mainActions(event:Event):void, that loops through each of the instances and performs the actions associated wit11h each.It goes through each instance of each class by going through the static array instanceList().
Now what I plan to do is:Have a seperate static array for each class, called inactiveInstances,which keeps track of deleted objects.Introduce a function for adding the objects back to the stage (with the nesscessary variables reset), to give the impression of a new object being created.When objects are destroyed:Should they be removed from the stage and readded latter e.g. removeChild(obj2)/addChild(obj1)? e.g.
Code:
public function instance_destroy()
{
parent.removeChild(this)
//Remove all refferences and listeners[code].....
View 5 Replies
Jan 14, 2009
i have many squares inside a movieclip, and i remove random some of this squares, what i need id: get the real with and heigth of my movieclip, after the squares are removed, i do a little exemplo, and anexed here,
[Code]....
View 1 Replies
Nov 21, 2010
Anyone know if there's a way to check for objects in memory that have been removed from a display object but not set to null?
View 1 Replies
Aug 17, 2009
if i have a movie clip with an even listener attached to it, is the event listener being removed automatically when the movie clip is removed from the stage or should i always remove the event listeners manually?
View 4 Replies
Apr 7, 2011
I want to remove all children of the name (mc1) but be able to add new one when I call the add function again Heres what I have
// Draws the squares
Code:
function drawIt(e:Event=null):void{
mc1.graphics.lineStyle(1);
mc1.graphics.beginFill(ITsColor);
[code]....
Removing all the (mc1) movieclips works fine, but when i click on the butotn to call drawIt again, all previous mc1's are displayed again with the new ones
View 2 Replies
Dec 17, 2008
I'm using Flash CS3 to create a graphical interface with multiple buttons--each of which opens a different linked file. The interface and linked files will all be included on a memory stick given out to people. The code below works perfectly for calling up a .wmv file (from a folder in the root drive called "linked_files")when a button is clicked. But my question is this: Is there a way for AS3 to recognize whether a computer is
running Windows (in which case it would open the .wmv) or Mac OS (in which case it would open a .mov instead)? I need to do the same thing with a couple of .exe files.Obviously Mac won't read them, in which case I need an appropriate alternative to open.
View 2 Replies
Mar 10, 2012
Can we use or access shared object stored in another system? I'm storing some data in shared object in one system can I access that shared object data from another system? I think Shared objects are stored in local machine. Can we give the path to (specified system i.e., server) where the shared objects will store, and can we access that object through same path?
View 2 Replies
Sep 1, 2010
I'm trying to manipulate (in this particular case add eventListeners) objects (in this case some MovieClips) on the stage from a class that isn't the document class.
1120: Access of undefined property trans.
Now I know that it's probably a scope thing and I probably can't access stage objects directly from a non document class (as I'm doing in the code below) but I can't figure out how to access them properly.
Anyway, here's the deal:
I've got 3 dynamic text fields (called "NL", "FR" and "EN") on my stage in a movieclip called "trans". I'm trying to add eventlisteners in a second class to make them do something when clicked on.
Here's my document class:
package {
import flash.display.MovieClip;
// Import custom classes.
[Code].....
View 3 Replies
Sep 29, 2009
I purchased this Thermometer flash template everything works well data is being populated through an xml file but I want to put multiple Swf files on a page with different data.Is there a way I can use SWf Objects.js to call a flash var of the XML file in the browsers source code.This is the Action Script Code
ActionScript Code:
stop();
import caurina.transitions.Tweener;//import tween class
stage.scaleMode = StageScaleMode.NO_SCALE;//define how stage scales
[code]....
View 2 Replies
Aug 7, 2009
I got a textfile who i am reading on a serverside script and passing it as a script to my client side as3 code. The problem is that i am using characters like ä,ö,ü,ß and this isn't well displayed. I tried System.useCodePage but the compiler complains about : 1120: Access of undefined property 'System'. It doesnt matter if I tried this on the first line of the 'Action' in the first scene or in the first line of the first .as file i am loading. (btw i am only working with .as file and not in the timeline). When i am importing flash.System.* the compiler complains he dont know useCodePage.
View 3 Replies
Jul 21, 2009
PHP Code:
var nc = 25;
var vd = 80;
[code].....
View 6 Replies
Feb 3, 2010
I have a loop, it goes through and works fine. I can trace out my variables and all is hunky dory, for example "trace(title);" displays the variable title, as expected, there is also the variables "something" and "everything" and a unique ID: id. Now I want to put these variables into an array, so the values can be called via the ID. For example (I'm a PHP programmer normally) in PHP I'd do the following:
Code:
$array[$id]["title"] = $title;
And to display it I would do
Code:
echo $array[$id]["title"];
For each part of the loop I want to add the "title", "something" and "everything" into the array so I can call them by "id". I think I'm doing it wrong though, should I be using objects? If so, how?
View 1 Replies
Sep 12, 2011
Some time ago StringBuilder was removed.What may be the reason of that? How can I deal with large strings now?
View 3 Replies
Nov 11, 2010
does anyone know if it's possible to use variables to call objects from your library onto stage like this:I have an object in my library called Level01 as is it's linkage
Actionscript Code:
var MyMap:String = "Level01";addEventListener(Event.ENTER_FRAME,LoadMap);function LoadMap(event:Event) { var myLVL:MovieClip = new MyMap();// how do you use the variable
[code].....
View 4 Replies
Mar 28, 2011
I don't understand why every flash program now seems to have no blur filters anymore. I use to use them all the time and now I have nothing to use for filters.I inspected the code:
import flash.filters.BlurFilter;var blur:BlurFilter = new BlurFilter(10, 0, 4);floodlight_beam.filters = [blur]
Doesn't seem to work.Thing is that the movieclip is in another movieclip so I had the code posted there. Also posted on the first scene. Nothing works.I can say flash downgraded when filters were removed.
View 3 Replies
Nov 12, 2010
i've been reading that XML/E4X is very slow with AVM2 / ActionScript 3.when supplying an application with XML data, is it always generally a better idea to parse the XML object into an array of objects to call rather than using E4X with the stock XML data?
View 2 Replies
Nov 11, 2011
I have an issue in which outdated code removed long ago code in an actionscript 2 class sometimes gets executed. I can tell this in that the application fails and trace statements removed long ago gets logged to a console.The closest match I've come across is this post:Flash CS4 refuses to let goHere are the things I've triedI hI have searched an uncompressed debug-enabled version for the trace entry. It is not there.I have decompiled the compiled version and searched that. It is not there.I ave deleted all ASO files and tried to recompile.I have not been able to reliably reproduce the conditions in which the situation arises.I've testet 700 times in a row (yes - sevenhundred times - this is a high profile project) and it would not occur. Then tested another time and it occured. No difference in my approach to testing.I have compiled on another, freshly installed machine. No difference.I have ruled out that it may relate to timestamps since I've tried to compile locally and w/o version control.
View 1 Replies
Sep 11, 2010
I'm building an image viewer that has violent content (video games), and so it requires users to enter their birthdays. Problem is that because of company policy, I can't expose any of the source images being viewed in the event that someone might use their resources/net tabs (or just sniff the request) and get the direct link to the image. (I know that they could screenshot it, but that's out of anyone's control and not something I'm worried about.)Is there anyway to inherently mask loaded resources (images)? I've been using sockets, which is great, but there's also the problem of actually loading the image binary (after HTTP request headers are removed) as a Bitmap in Flash.
View 4 Replies
Dec 29, 2010
Is it possible to make this a mask? The system contains one movieclip of a circle called ball, also a class called ball and a class called particle. I want the particle system movieclips to display an image...I'm sure this is possible...just have not been able to find a way. A little backround, I'm a completely selftaught n00b when it comes to AS3, but I'm grasping it fairly well... the tutorial is on this website, called A Simple Particle System Using Actionscript 3.
View 0 Replies
Oct 20, 2010
I have a movieclip that contains two frames, each frame contains a different set of buttons.
it seems that i cannot add the event listeners to buttons that are not in my current viewed frame.
so.. problem one: is there a way to add event listeners to all the elements in the movieclip even if the elements are in a different frame.
problem two: after I added an event listener to some elements in current frame and then I move forward to the next frame and go back to the same frame, all the event listeners are removed and i need to initialize them again. is there a way to resolve the issue without the need to re-initialize the event listeners ?
View 1 Replies
Nov 4, 2010
I need to get a javascript var in my Flash application. I like to be able to just set a variable in the javascript (client constraints) rather than define a function.
Can this be done? I am trying to use the ExternalInterface.call()
AS:
ExternalInterface.call("function(){return window.someVar}", null);
JS:
var someVar = "Test";
This does not work and I suspect it is because the ExternalInterface.call() does not like the anonymous function.
View 2 Replies
Feb 10, 2011
I have a function defined in JavaScript like so:
function fadeBack() {
alert("fadeBack called");
};
I call that function from my Flash file like so:
import flash.external.*;
flash.external.ExternalInterface.call("fadeBack");
This works in both Safari and Chrome, but for some reason Firefox won't ever call the function. Still, I can't figure this out. How can I fix it?
View 2 Replies
Jun 28, 2011
i have some actionscript that makes a
ExternalInterface.call('someFunction');
call.is it possible to reference the html object that made the call to someFunction directly using the ExternalInterface.call call?
Assume that the object that makes the call also has some Callbacks (via ExternalInterface.addCallback) that are accessible via javascript.
Currently:
Actionscript source
ExternalInterface.call("someFunction");
ExternalInterface.addCallback("someCallback",someASfunction);
[code]....
View 1 Replies
Feb 10, 2011
We have been given some code that does a URLRequest call which is really slow to respond, so I was looking to make it pull the data from the page, as it is already on the page.[code]I have tried to replace it with this (actionscript is definitely not my forte):[code]I am using addCallBack as that is what the editor suggested via autocomplete, unfortunately it doesn't seem to work. Unfortunately I cannot go back to the developer at this time.The error message is:Call to a possibly undefined method addCallback through a reference with static type flash.external:ExternalInterface
View 3 Replies
Jan 16, 2011
Internally Flash obviously keeps a list of the primitives drawn using Graphics so I wondered if you have many such primitives in a Sprite, can you re-position/remove/alter individual items rather than clear and re-draw everything? Or is this deeper into the bowels of Flash than you're allowed (or recommended) to go?
View 4 Replies
Jul 17, 2009
I want to have 2 static functions called turnOn() and turnOff(). Say objectA calls turnOn(), then objectB calls turnOn(). Then objectA calls turnOff(), it should not turn off because objectB turned it on as well. Also say objectA calls turnOn(), then objectB calls turnOn(). Then objectB calls turnOff(), it should not turn off because objectA hasn't turned it off yet. Finally, if objectA and objectB turn it on, it turns off when they both turn it off. I was thinking keeping track of how many turnOn and TurnOff's are called and make sure it matches, but thats not truly accurate because objectA can call turnOff() twice.
View 5 Replies
Apr 9, 2011
I do not know why Adobe has removed the "Flash Professional CS5 Extension for AIR 2.5"?
View 4 Replies
Dec 18, 2011
Is this the correct, most efficient way to recycle objects when creating an array of objects?
package com {
public class CreateList extends MovieClip {
//this is the object I will be recycling
private var newProperty:PropertyRow;
//this is the array I will use to reference the objects
[Code]...
View 2 Replies