ActionScript 2.0 :: Destroying A Class Object (Flash GURU'S)?
Jun 8, 2008
I've recently worked on creating different classes for movieclips within my library so when i create/attach them they have built in functionality.My question is simple how do i destroy them so that other objects don't recognise their existance.There are two classes involved.The first is a Ship Registry Class and the Secound the Ship:
Code:
//inside the ship init class
ShipRegistry.RegisterShip(this);
1. I want to click on a icon that activates (controls) a movie clip on another banner ( which would be on the same page)2. I also want to have this banner to have a input text field, which the user would type in their name say" john smith". Once they have typed in their names and clicked on the submit button it wouldd appear on the other banner( which is still on the same page)
sometimes when I import pngs from a Photoshop document and try to make a movieclip with them (F8 ...) Flash is just crashing. And sometimes it gives me an error message that there is not enough memory.I think this happens when trying to put a png from a Photoshop import and a text or vector object from different layers into a MovieClip.
Today I had the memory error. And after that, flash is creating a mess in my movie. It is just duplicating alles layers in a Clip and also duplicating all labels along my timeline, when I try to work on it. I tried restart but this bug apears again.Is there a way to heal my fla so I can deliver my project soon?
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?
public class Example { public function Example () { }[code]............
You can see that the two last classes extend the first one, and both have the 'variable' property. In case that I have an instance of Example and I am sure it is also an ExtendedExample OR AnotherExtendedExample instance, is there some way to access the 'variable' property? Something like
function functionThatReceivesAnExtendedExample (ex:Example):void { if(some condition that I may need) { ex.func()
Using Flash CS5 Professional I have created a symbol, dragged it onto the stage, and given it an instance name of GreenLight1. If I want to make this visible from the document class, I can simply do the GreenLight1.visible=true; and poof it's good to go when I test the file. As long as I stay in the document class I am good to go, but now I'm trying to move to another class and hitting ALL kinds of trouble just trying to get Flash to allow me to access this simple object. All I am looking to do is have this GreenLight1 go invisible (visible=false) when a certain condition occurs in this new class and Flash just won't let me access GreenLight1 at all. Things I've tried thus far:
stage is passed to the class and is referenced by _stage and is working just fine when I do _stage.addchild or anything like that. So I have tried "_stage.GreenLight1.visible=false;" and I get "ReferenceError: Error #1069: Property GreenLight1 not found on flash.display.Stage and there is no default value." My document class extends Sprite, so I figured I'd try the root function. So I tried "Sprite(root).GreenLight1.visible=false;" and I get "1119: Access of possibly undefined property GreenLight1 through a reference with static type flash.display:Sprite." I tried to create the Resource class as described therein. To which I came across the same problem that I started with in that it doesn't know what GreenLight1 is to begin with so I got "1120: Access of undefined property GreenLight1." Here is my code for Resource.as (am I supposed to pass something to this class from the document class?)
How can i cast a object to another type? in AS3 i tried putting (objectType) infront of the variable but it doesnt work, below i have added objects of fishes into the child, and i am getting the fishes back out when mouse down is triggered, and then calling the fishes what to do. however i cant call the method of the custom class fish because it is a displayobject.[code]...
I have been searching online for an hour now and cannot find a true answer to my question. I am creating a game for the ipod and cannot figure out why I am getting this error. I am trying to remove something via hitTestObject, here is my code: default class code:
I am receiving this error whenever the hitTestObject is true and the child is removed:
Code:ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. at flash.display::DisplayObjectContainer/removeChild() at SpaceOrbitalDefense/EnterFrame()[C:UsersJosiahDocumentsSpace - Orbital DefenseSpaceOrbitalDefense.as:84]
how can I get this error to go away? I believe it is because I have removed the child, but the object is still being detected and trying to remove the child again. however, the child has already been removed and now I am getting an error.
I understand the developer has no control over flash player's garbage collection routine, but whats the best way to ensure you've deleted a movie clip and done pretty much everything you can? I want to make absolutely sure there are no memory leaks or resource management problems.Here's what I've got so far in my document class:
I'm not a huge flash expert by any means, but I am working on some banner and I need to take the larger 336x280 banners and resize them to 300x250. I've change the size of the stage and shrinking down the bitmaps etc is fine. The issue I am having is the aminated graphics and buttons I have on the stage. I've tried editing multiple frames, onions skins .etc to do it, but no matter what the animation will still only edit the first place I clicked on the symbol. So it goes from the smaller size and animates to the larger size and its original position on the old size.
It seems there must be a way to adjust animations without having to redo them all. Right?
I am using external interface to store cookies in client side of application. Like I have created a cookie in html and i am using those methods in flex using External Interface. I am saving a username in cookie when I re use cookie is displaying, I have deployed in server and i ran like http://localhost/[Path]/index.html.in this html I am embedded swf file and I have saved cookie in html JavaScript, now if I open this url cookie is saving if I open a new window what ever the cookies are a raised and it is loading from start. for cookies saving i am using this code in flex:`package Name{
I have a problem where i want to remove the last character from a textfield (including linebreaks) that has multiple textformats without removing the formats.[code]...
i guess this doesn't remove linebreaks, and is very slow, seems to destroy my textformats.
or:
textfield.text = textfield.text.slice(0,-1);
this is faster but removes all textformats as well.
i can create a textfield, show my percentage loaded in it, but when it hits 100%, i want to get rid of the textfield... doing all my stuff in actionscript so moving to the next frame not a possibility. unless i create the textfield in another movie..
i can create a textfield, show my percentage loaded in it, no problem.but when it hits 100%, i want to get rid of the textfield....doing all my stuff in actionscript so moving to the next frame not a possibility...
I'm new to Flash AS3. I started making a game and I am a bit confused. Let's assume that I want to create a game that has multiple levels/modes, how can I do this in an object orientated way?
When i create games in other languages e.g. XNA C#, i create a separate class then create an object of that class within the main class and run the game based on a simple statement.
I'm having some troubles with the use of interface and inheritance in AS3. I've done lots of OOP in the past and what I'm trying to do seems obvious to me, but doesn't work in AS3. The question is : Is it possible to override a function that return an Object of class A, and make it return an Object of Class B which extends A ? It seems not to be possible, since I'm getting a signature error in Flash, when compiling. For example, the following set of class do not compile (the code in function definition doesn't matter):
I have a class CoverPoint extends Pointwith some extra function.except for that ther is no difference. I would like to use the functions of Point with a return value of Point, to calculate those CoverPoints.Can i turn the return value into CoverPoint (since all the vars are the same, there shouldn't be a problem with that, right?), so that it can be stored in my var cP:CoverPoint;
Is it possible to create an object from a class with a dynamic name? I have the name of the class in a string, but I want to create an instance of that class.
I'm using flashDevelop for an avatar creation engine. I have a movieclip(class) called body_view which is structures like this : body_view -> 10 visual body components -> each component needs to have a jpeg loaded Then there is a body_model class which is extended from the body_view class and is responsible for all loads/saves/interactions now body_model class is as follows: body_models -> variables holding (values) -> populateView (function)
Now through the populateView function I need to populate the components of body_view but the issue is if I load a jpeg/swf on a function it comes on stage. I do not want it on stage I want it in its perticular place in the body_view
I have a class file named Main.as and another class called icon.as
package { import icon; public class main { public var _time:String; function main() { [Code] .....
How do I get the current update from the main class without calling the MainObj repeatedly. Is this possible in Flash AS3, or any other alternate method for this idea.
I have a class (ImageLoader) that extends Sprite container and loads an external image to its instance. When i instantiate an object of this class from another (Main) class i want to have the dimensions (width, height) of the loaded image being known to this (Main) class. It seems that is difficult for me as the dimensions are known after the image compete loaded. But i don't know how to pass this information from completeHandler event handler to the Main class.
I'm using flashDevelop for an avatar creation engine. I have a movieclip(class) called body_view which is structures like this :
body_view -> 10 visual body components -> each component needs to have a jpeg loaded
Then there is a body_model class which is extended from the body_view class and is responsible for all loads/saves/interactions now body_model class is as follows:
Now through the populateView function I need to populate the components of body_view but the issue is if I load a jpeg/swf on a function it comes on stage. I do not want it on stage I want it in its perticular place in the body_view
I'm using Flash Professional cs5/AS3 I'll try and describe this the best I can. I'm new to ActionScript. So, in my timeline I have a var on a frame that represents "lives" and i have some code in the timeline that takes down the number of lives depending on certain events, which all works great.
so, now i wanted to make a constructor class that I could reuse for a bunch of movie clip objects and I only want these objects to be able to move if the lives variable is greater than certain number. So now, building my constructor class for these objects i just wanted put an if statement that is looking to see if the lives are greater than a certain number, which if it is then should make these objects do what i want...But, when i run the project I get "1120: Access of undefined property lives."
lives is the var I made obviously like I said, and it works fine being referenced everyone else except when I make a new .as file for these objects then try and reference it. I get the same error when I try and establish "lives" in the main project class too. I'm not sure where I should put this var or how I can make it so i can reference it from an object class. I'm not really sure how to word or describe my issue which has made it hard to search for a tutorial.
I have question regarding removing instantiated objects. Let's say i have a main class in which i instantiate a custom video player (or whatever) class:
[Code]...
From my experience, if i don't destroy for example event listeners from my VideoPlayer class and just remove VideoPlayer class the way described they still get fired with null exception messages etc. This is something that's bugging me for a while so i would really like to know what's best thing to do here?
When I use MouseEvent.MOUSE_OUT the target is [object MovieClip], but when I use MouseEvent.ROLL_OUT I get [object Bildspel] - and Bildspel is my class. The thing is that when I use ROLL_OUT I'm not able to delete the targets ENTER_FRAME event.
Ok. So heres what I am trying to do. I want one movie clip to follow another one that I move around with actions on the main timeline.The problem is that the follower clip is linked to a class file and I cannot find a way to find the players position.
I found myself loading a new XML file every day and so decided to create a small class that will load the xml file and return it.The class is loading the file but when i try to return it to a new xml object in the document class it doesnt load it.I think that it's something to with the return being in a nested function but i tried a few ways and non seems to work.
[DOCUMENT CLASS] loadXML:LoadXML = new LoadXML(); myXML:XML = new XML(loadXML.loadXMLFile("gallery.xml"));[code].....
I have created a class, call it Class1, that has various objects drawn on the stage (drawn in the IDE). It also has a function, called setColour, for changing the colour of those objects. The function works fine if I call it from within Class1.
Now I have another class, call it testClass1, that imports Class1 and calls the setColour function. First of all, none of the stage objects from Class1 are visible. Secondly, when setColour tries to modify the colour of an object, I get the error:
TypeError: Error #1009: Cannot access a property or method of a null object reference.