ActionScript 3.0 :: Calling An Instance's Variables Directly?
Jul 21, 2009
I have two classes a main and one controlling a cloud graphic going on the stage. In the main class I am creating an instance of the cloud, adding it to the stage with an array and with a for loop I am setting the x speed (vx). I have noticed that if I set the vx in the cloud class and reference it directly then it does not work (clouds are drawn for a millisecond then a blank movie). I have to initialize the cloud.vx value in the main class to get it to work. Why can I not just pull the vx value from the cloud class without setting it to a value in the main class?
I just went through a slideshow from Grant Skinner on improving performance of ActionScript. One tip he gave was written as, "Call methods directly instead of through a reference." I don't quite understand what this means.Does is mean to avoid making a function call to a variable referencing a function object?[code]Or do avoid making a function call to a variable referencing another object, which possesses that method?[code]
If i create a movieclip named player and in this class there is the proprety map (a string) and level(an int); I would like to know if there is a way of modifying these propreties without actionscript when i create an instance of that symbol. For exemple, like you would modify the height and the width of a movieclip in flash(the program, not actionscript), but modify this instance's map and level proprieties instead
If i create a movieclip named player and in this class there is the proprety map(a string) and level(an int); I would like to know if there is a way of modifying these propreties without actionscript when i create an instance of that symbol.For exemple, like you would modify the height and the width of the object in flash, but modify this instance's proprieties instead.
If I need to call a specific function in the parent application from a child in a flex project, what's the best practice for this? Would it be to dispatch a custom event from the child and have a listener call that function? Or to directly call the function with FlexGlobals.topLevelApplication?
How to post variables to another domain. The other domain is a free cgi-bin service. So I cannot upload a shim movie there. That is, I need to post variables directly to a cgi script on the domain. Is it possible to do so?
I am wrapping my brain around OOP in AS2. I am making two posts on two different subjects. My question here is: when should I use local instance variables, and when should I attach new properties to the instance object? (Feel free to correct my terminology.) Let's say I have a class for a scrolling background, which scrolls when I mouse over its edge. I want to put these values somewhere:
1) How wide is the border in which a mouseOver makes it scroll? This is basically a semi-constant I set it up once and keep it the same, unless the user changes it in an options menu to make the border wider or narrower. Call this scrollBorderWidth.
2) How fast is the background scrolling now? I want to track this so I can smoothly change the scroll speed over several frames. This is often changed. Call this scrollSpeed.
It seems I have two ways I can store and access these values and darned if I know which is better practice. METHOD A: Make them local variables in the class, so the scrolling background instance has them as local vars. I set them up thusly:
dynamic text box and what is loaded into it. the function for my buttons defines a new variable "newChoice" and sets its value to the "this.varTitle". It then tells the movie clip containing the text box gotoAndPlay (2). At that point the text box should update to the value of "newChoice" but it doesnt work.if i tell it to update something absolute, like a string, it works, but i think there is a problem with the layers of variables i'm using.
main function: playDots = function () {[code]......
I have 4 instances of the same button on a single layer in a timeline of the mc 'coverflow_mc' named 'ThatsMe_btn_a' to 'ThatsMe_btn_d' ie same button, same position.. it just changes instance name on 4 keyframes. Why does it call the function fine for button a but not for b,c, or d? There is a stop on each of these frames and I can see from the swf that it is stopping at the correct frames.
function thatsMe() { right = new Sound(); right.attachSound("right");
Basically I'm creating a question with 4 answers (i.e. a,b,c,d).I have my question working fine, but I'm having a problem adding a check mark beside the answers once the user clicks the submit button.I've created four instances of my check mark; rightAns1_mc, rightAns2_mc, rightAns3_mc, rightAns4_mc. I've set them all to _invisible = false; I've also set up a variable; nCheck:Number = 0; and when the user clicks one the radial buttons I have the variable change (i.e. if they click A, it set to nCheck = 1; if they click B, it sets to nCheck = 2; etc)So in my if statement for the submit button I figured I could have rightAns(nCheck)_mc._visible = true;
I am creating movieclips into which I want to load thumbnails which are to be loaded dynamically. I'm not sure if the solution I am trying to build is the more effective way to do this; I'm still quite a noobie.
Each movieclip container which I will use hold the thumbnails is of a size to hold 16 thumbs, so the number of holder movieclips required is calculated at the time the xml loads; with the movieclips then being created, named and stored in an array. (The idea is to then move between these movieclips (and so the thumbs) using previous and next buttons) - however, I'm not at that stage yet!
However, when I call each movieclip to place the loaded thumbs in, the code throws the "#1010: A term is undefined and has no properties" Error. I think this is a problem with the array; and possibly the mc not being defined properly. However, I am not sure where my problem is.
If all I have is an instance of an object, can I call a static method of its class? For fun, let's say I don't know what the name of the class is, only the name of the static method.
Is it possible to create an instance of a class without triggering the class' constructor?[code]In the case above, say I wanted to play around with a Foo instance, but I really don't want my global.foobarCount going up, nor do i want to pass in any value at all for bar.This could be useful for introspection where you want to learn more about or pass a particular class object but don't want to provide required arguments or trigger anything that the constructor may do.Is this at all possible? (Obviously, new Foo() just doesn't cut it here, since it would throw and arguments error, nor does just using Foo, since that's a reference to the class itself).
My method has been passed a class instance, but it was typed through an interface so I'm not 100% sure what class it is. I'd like to attempt call a static method on that instance's Class.. is there an easy way to do this without being forced to pass the class along as well?
Something like this:
ActionScript Code: public function foo(myBarInstance:IBar):void { var barClassPointer:Class = getClass(myBarInstance); try {
If I have a function and I want to call a variable from another function (only 1variable), how do I do it? I know in the olden days you could set the variable to local or global, but that does not seem to work anymore. There is only 1 variable I need access to, but all the tutorials I have come across talk about making classes for multiple variables.
I want to be able to add each clip to the stage using a function where the number is a variable that can be added to the "Add movieclip" statement.
For example:
var x:Number = 1; var "Clip" + x:"clip"+x = new "clip" + x();
so that the program inteprets the above as:
var Clip1:clip1 = new clip1(); addChild(Clip1);
This was the only way I could think of adding a movieclip to a stage. I am open to any other option. I hope this was clear. I don't have any code to post because I'm just trying to work through the logic of the program. Adding movieclips to the stage when the name of the movieclip has a variable in it, is the part I am stuck on.
AS3 documentation says that Strings in AS3 are in UTF-16 format.There is a textbox on a Flash Clip where user can type some data.When a button is clicked, I want this data to be sent to a php script.I have everything set up, but it seems that the PHP script gets the data in UTF-16 format. The data in the database (which is utf-8) shows some unrecognizable characters (where special characters are used), meaning that the data has not been sent in a correct encoding.
var variables:URLVariables=new URLVariables; var varSend:URLRequest=new URLRequest("http://website.com/systematic/accept.php"); varSend.method=URLRequestMethod.POST;
I have a variable, we'll call it helloNurse, defined in the document class, we'll call it Joy, as a public variable. Meanwhile, I have a movieclip within the FLA that uses that class as its document class that, simply put, needs to access that variable. I had read up that the following SHOULD work:
I've got an XML file that is loading in data and is calling functions.
how to call the methods from classes with variables set from the XML file:
var functionToCall:String = xml.functions.func[0].to_fire.toString(); myClass[functionToCall]();
This calls the function perfectly.
I was wondering if there is anyway to pass parameters into the function as well through variables. Some functions may have no parameters, some functions could have 5... so the xml could be like this:
I am calling some data from php, which simply retrieves some data from MySQL. The tables retrieved are called dynamically and so I have a list of those tables sent to actionscript below and called by event.target.data.its and event.target.data.ces. These will have a list of the tables called. I then send the name/value pairs to actionscript from php by using those table names (all inside of php here) dynamically.
i've never tried to do this before, so my head a swimming a bit. i'd like to have a public boolean called enabled in myClass custom class. if it's called to be changed, how do i trigger a function from the change? should i add an Event.CHANGE event listener to my variable?
I'm using 9 textbox in my stage. Names are similar, only difference is the last character. (s1_0, s1_1, s1_2, ...). I'm trying to use these textbox in a loop. But I couldn't find the right typing... s1_[i], s1_(i) or s1_{i} gives error. s1_0.text=0 s1_1.text=0 s1_2.text=0 s1_3.text=0 s1_4.text=0 s1_5.text=0 s1_6.text=0 s1_7.text=0
It seems that my code is problematic, because I assign one instance of a MovieClip to several variables, type MovieClip. The behaviour of others of my codes makes me think, that ActionScript does not make copies of the instance, but references all variables to this single instance. This behaviour now causes trouble.The solution I consider now, is to create copies of the MovieClip and assign them to my variables. Is there any code to copy a MovieClip?
So in AS2.0 I would use _global.variableName to create and refer to a variable that was maybe created on the stage and then needed to be referenced to inside of an instance. That doesn't seem to work anymore. Are you expected to not want to do that, or is the code just changed now?
Im looking to have something along these lines, different variables that build the path to the object so that I can have it change dynamically.I'd like to have something like:
function foo(e:MouseEvent):void { var1.var2.var3+_button.gotoAndPlay(2); }
I've read on the net that actionscripting from the action layer will result in a more readable file once published, as apposed to attaching onClipEvent functions which slow down readability.
For this reason I am trying to add variables to a MovieClip I have on the stage with an Instance Name of Player. However I wish to assign the MovieClip variables from the actions layer using the MovieClips Instance Name.