ActionScript 2.0 :: Multiple CSS References In One Tag?
Aug 15, 2009
I'm using the CSS object (TextField.StyleSheet) to format my dynamic text, which is loaded from an XML doc. I tried referencing more than one class, like <span class="body bluetext">. However, it doesn't seem to work because it ignores the first syle(s) and only applies the last one in the list. I'm guessing Flash doesn't support this (since they're CSS support is already very weak). Just want to make sure I'm not doing something wrong.
I'm writing an application where I have many objects (data models) that are identified by a unique String ID that every such object possesses and these objects can refer to each other by their IDs.So far so good but now I need to keep track of which object keeps a reference to another object and of course there are cases where an object references (or is referenced by) more than one other object and I was wondering what would be the best method to store these references? In a simple map data structure I could just map one object's ID to another but as mentioned there are cases where an object can hold a ref to an arbitrary amount of other objects
Types like Movieclip , String, Object act as references when declared and defined, while types like int, Number are primitives. Why such difference has been made. Why not all of them can be primitives ?
Lately I've been twitching in the back of my head wondering just how many references to objects that I'm making, and whether or not they are getting GC'd or not.My question in this sense refers to event listeners and whether or not they are removed in certain cases where you get rid of an object. Two examples:
First, and I think this one is an easy one... when you create an object that adds an event listener to itself INSIDE it's own methods (e.g. this.addEventListener(e:Event, function)), when you REMOVE that object (this), do it's event listeners disappear too? I can only say yes, because they are referencing THAT object and are INSIDE that object.
So I think that question answers itself (but I'd love to know if the truth says otherwise).
But secondly, if you add an event listener to an object from a sibling or parent object, and then remove the object, does that event listener stick around, therefore maintaining a reference to that object and keeping it in memory? And is that the concept that people keep referring to of 'weak' event listeners? E.g. someChildObject.addEventListener(e:Event, function)Also, are event listeners by default strong or weak?
And I am assuming that 'yes', it DOES keep the reference. Which, if you are a n00b programmer like me, you probably are all like, 'aww sh*t damn, how am I supposed to make sure that my objects are getting thrown in the garbage collector's mouth of goodness every once in a while?
I have a files that has movie clips and nested movie clips on the stage. I am now writing a class and want to give the MCs event handlers and other properties.
When I do something like the following: myMC_mc.MyOtherMC_mc.mouseEnabled = false;
I get the error: 1120: Access of undefined property myMC_mc.
I added this to the top of my class and it seems to take away the error, but I thought this was not needed in AS3 anymore.
private var myMC_mc:MovieClip; private var myMC_mc.MyOtherMC_mc:MovieClip;
What do I have to do to not get the error? How is this done right?
I've got a 15x3 grid of dynamic text fields in an object called "textbox" that I want to reference through a for loop, so I don't have to have 45 lines of code for assigning stuff to those fields.I have each dynamic field named by their placement in the grid, so, c0a, c0b, c0c, c1a, c1b, c1c, etc.I can also name them c00, c01, c02, if necessary.
I tried:
for (i=0; i<15; i++) { textbox.c[i]a.text = "Cell " + i + " A"; textbox.c[i]b.text = "Cell " + i + " B"; textbox.c[i]c.text = "Cell " + i + " C"; }
but that gives me a syntax error.I also tried naming them c00, c01, c02, c10, c11, c12, etc., so I could do a double nested loop:
for (i=0; i<15; i++) { for (n=0; n<3; n++) { textbox.c[i][n].text = "Cell " + i + n; } }
but that gives me a syntax error too.So, is there a way to access all of these with a for loop, or am I going to have to do it the long way?
I have a movie clip in which I have a number of sub movieclips. The number of sub movieclips can vary, so I would like to keep track of them in an array. I am doing that like so:[code]The trace seems fine, showing the names of the correct sub movieclips, but when I try to change the alpha I get this error: TypeError: Error #1009: Cannot access a property or method of a null object reference.
I need to update the dynamic text in this flash file I have and export it to SWF. I've looked at the actionscript in all the frames and symbols but the only thing I've found so far are "stop();" 's
I tried exporting this to SWF to see if the file size was the same as the current working version on the site, and it was about 15kb smaller, and does not work at all.
How can I see all external file references in flash? I need to be able to tell my boss which files are needed or at least what is missing.
I need i way to embed youtube videos, without any reference. I need something like this [url]... Here the only thing is the youtube logo, no external click, and no title.
The default value for weakReference in the call to addEventListener() is false. Many memory issues can be resolved by using weakReferences; in fact, some industry experts "strongly recommend always using weak references with listeners".If this is the case, can someone provide me with a good reason why weakReference defaults to true? (Note that I'm not asking why someone would ever want a listener that is not a weakReference, but rather why weakReference=false is the default)
I'm just getting to grips now with how the Garbage Collector works.
Is there a way (like a function or a custom class available somewhere) to check an object for all its references and return them so that you can see what it's connected to?
I am trying to pull a text from within xml tags and place them in a text box when certain mc's are clicked. I am using the e.target to find the name of the mc clicked and grab info from tags with the same name as the target mc. The XML link is good as i can get data when doing tests with out using mentioned technique.
I'm trying to get some things done but run once in a while, well at least, into some issues.Here is one:
I have an swf that is an image viewer/browser that has references on same level, an ImageProperties.xml and some folders full of small jpeg tiles.I actually have a few of these, each in its own folder.Above these folders I have another swf that is the main one, and I am loading from there the other ones with the code pasted at end of this post.
This works if I replace the URLRequest by just the name of the swf to load and I put the main swf with the loader function and the loaded one at same level. But if I leave URLRequest going one level deep "16/xxx.swf" and have the loader swf one level up then it loads the viewer but doesn't show the image.
I have some classes that I want to be able to target them in xml.[code]...
the two ways I know of to embed the class is to associate it with an exported symbol or just reference the class name somewhere in the code (like just sticking the reference in the document class constructor)[code]...
I'm building a simple Pong-esque game and I've 'hit' a problem. I'm having an issue with referencing one variable from one class into another. Sounds confusing to me, even harder to understand.
Basically I've got this in my "game.as" class:
ActionScript Code: public var pongBall:ball;
and in my "player1.as" class I am trying to get said ball to bounce off the player's bat on contact. I think I have the coding right for it apart from trying to link it to the ball from game.as! So far I have this:
ActionScript Code: public function bounceTest (event:Event) { if (this.hitTestObject("game.as".startGame.pongBall)) {
* Is it possible to create weak references to objects (like theventListener/EventDispatcher is able to do) so that if they are removed, you won't be stuck keeping a reference and taking up space to something that should be garbage collected?* Is there any way to find out how many active variables are referencing a certain object? This would be handy to actually create weak references, since, if you for example, have a static array containing all objects created in that class, you can do a regular check to see if there is only one remaining reference, and if so, you can safely remove it.
* Also, might there be any way to list the entire space (one big chunk of binary data, most likely) of every variable currently running in the program, all references, basically, what Flash is currently storing in RAM?I'm pretty sure that Flash (as crappy and lacking as it is in so many areas) does not have anything like any of these built in, but hopefully there is at least something.
The default value for weakReference in the call to addEventListener() is false. Many memory issues can be resolved by using weakReferences; in fact, some industry experts "strongly recommend always using weak references with listeners".If this is the case, can someone provide me with a good reason why weakReference defaults to true? (Note that I'm not asking why someone would ever want a listener that is not a weakReference, but rather why weakReference=false is the default)
I am dynamically generating buttons and textfields using an array and a for loop ... It all works well and creates buttons and textfields ... but once they are created is there a way I can cast them to a movieclip so that i can then control the visibility etc.
Here's the code:
//define variables var _buttons:Buttons; var _buttonsX:Number; var _buttonsY:Number;
Im working on a banner testing application coded in flashdevelop on Adobe Air 1.5, testing sizes, kb, animation time etc. One of the tests ran by the application is clickthroughs via clicktags. Since most of these banners are coded in AS2, I�m injecting the variables via querystring when loading the banners swf files (via a browse/drag drop File reference).
PHP Code:
var req:URLRequest = new URLRequest("banner300x250.swf?clickTag=hello");
This works fine for _root references to clicktags, but when the banner is looking for the variable in _level0 I just can�t figure out how to write these variables.I've tried to load a bridge AS2 movie and set the variables there, something like AVM2 localConnection --> AVM1 localConnection --> AVM1 banner, wich worked fine on flash IDE testings, reading all _level0 on the AVM1 bridge, but compiled on Air became into a security errors storm and undefined values for _level0.
I have four movie clips in my library that are defined as classes: Option0, Option1, Option2 and Option3. I have four buttons that pass a different value from 1-4 to a function. I want to add the clip to the display list that relates to the passed value. In AS2 it would go something like:this.attachmovie["option"+currentVal, "newOption", this.getNextHighestDepth()];
I need to create two combo boxes that are populated by an XML file. In the first combo box there are 13 choices and depending on what the user selects I need to populate the second combo box with the correct information. Now I can create the first combo box just fine but when I try to dynamically create the XML file name for the second combo box it doesn�t seem to work. What I am doing so far is taking the data from the first combo box and adding the quotes and .xml with this piece of code:
If you trace that code it creates the file name just fine however the xml file will not load. If I replace that code with the normal xml code like this:
PHP Code:
pModComboXML = new XML(); pModComboXML.ignoreWhite = true; pModComboXML.load("new.xml");
The second xml file seems to load just fine. However, if I create an if statement with all the different xml file names I will have to update the swf every time I add a new choice in the first combo box. So my question is does anyone know how to dynamically create the xml file name?
PHP Code:
pmComboXML = new XML(); pmComboXML.ignoreWhite = true; pmComboXML.load("brands combo.xml");
i retrieve a list of instances located in a array to manipulate them in a variable holder. Normally, the operations can be made between two instances stored in a simple variable to variable fashion and it works realy fast.I analysed two main operations: retrieving references in a array to a variable and get or set a value from the variable reference.Here are the objects used to perform the test operation:
var v4:Vector.<Person>= new Vector.<Person>();//List of Persons instance var refHolder:Person; //Typed referencevar refHolder2:*; //Not typed reference Test #1: looping 200 000 times and only retrieving references from the array v4.[code]........
So my conclusion with that test is that with a typed reference you spend more time assigning a reference than manipulating a value from the reference With a not typed reference, the time spent is in manipulating the reference in the variable.Which one should i use or what should i do to have better performance with manipulating references from arrays?
Here are the files i used to test this: reference.swf //Online example reference.zip //Source file
I want to do is create several arrays to hold groups of movie clips (i am using as buttons) which have similar functions so that I can add event listeners using a for loop statement rather than making a huge list of add and remove event listeners.I have seen this method working before but I cannot get my code to work!! This is probably a very noob concept but I have been struggling with it for hours.Ok, so in the extends movie clip bit on my as file I declare the array as such:public static var controlBtns:Array;Then in the initializing function I put values into the array as such: [code]The trace seems to output all the object names (as they are listed in the library) and then I get this error: TypeError: Error #1010: A term is undefined and has no properties.Which is kind of obvious as I cannot seem to access the movie clip instance names that I have set up in the array.I tried putting quotation marks around the names in the array making them strings but then I can't access properties of strings - which is obvious enough to.
Boy, it feels like I'm here a lot more than I used to be. I'm currently switching tweens to use TweenLite and what happens is I now have a null reference.
What I don't understand is how to switch this code appropriately. The object begin tweened then has to be capable of being dragged again once it's scaled back down and incapble of being dragged while it's scaled up.
I got a flash file (.fla) from an acquaintance who was trying to help me with a project. It's just 4 checkboxes that I'm using with Articulate Presenter for an e-Learning program I'm creating The issue is that Articulate doesn't play well with references to either _level0 or _root.The acquaintance isn't available to help me unfortunately, so I was wondering if someone could point me in the right direction to changing those references to something that Articulate won't freak out about.I'm only a couple of days into my Adobe trial for Flash, and the classes I'm intending on taking don't start for another two months.
As I currently understand, if an event listener is added to an object with useWeakReference set to true, then it is eligible for garbage collection and will be removed if and when the garbage collection does a sweep.
public function myCustomSpriteClass() //constructor { this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener, false, 0, true); this.addEventListener(MouseEvent.MOUSE_UP, mouseUpListener, false, 0, true); }
In this case, is it not appropriate to initialize an object with weak references event listeners, incase the garbage collector does activate a sweep removing the objects event listeners since they were added during initialization of the object? In this case, would it only be appropriate to create a type of deallocate() method which removes the event listeners before the object is nullified?