ActionScript 3.0 :: Accessing MovieClips Inside Custom Class
Oct 1, 2009
After resolving one issue, another error has surfaced in my custom class. This class displays a dialogBox and the dialogBox has some interactive MovieClips like btnOK_mc Button.On creating an object of the said class, it reports errors like "Access of undefined property btnOK_mc".[code]I understand that it is an issue of the Scope of these controls; but don't know, how to define these MCs; so that they look like Public. I may be just out of track on the issue.
I'm currently learning OOP through Sen's information here at Kirupa, and I've decided to try out his "creatures" exercise mentioned in his Best of Senocular thread...The situation is a random number of sprites are created, and they move around the stage, interacting. They all have a certain amount of "health," defined as a variable in a MovieClip prototype applied to the MC. When they hit, I want their health to go down a little bit, so how can I access a particular MC's "health" variable while I'm outside of the MC itself?
I'm currently learning OOP through Sen's information here at Kirupa, and I've decided to try out his "creatures" exercise mentioned in his Best of Senocular thread...I still have a bunch to learn, but I wanted to go ahead and ask a question for a problem I am having right now.The situation is a random number of sprites are created, and they move around the stage,interacting. They all have a certain amount of "health," defined as a variable in a MovieClip prototype applied to the MC. When they hit, I want their health to go down a little bit, so how can I access a particular MC's "health" variable while I'm outside of the MC itself?
I have a couple of Text input fields sitting inside a MovieClip and i am wanting to know how do i go about accessing them from outside the MovieClip and obtaining the value of each input text field?the movieclip is called myinstance the movieclip code is in a value like this public var myinstance: MovieClip = new Ccontrol(); that is for the MovieClip the actual [code]When i do that i get the message the left control is now.when it shud be the left control is A or what ever the user entered in the input field b4 they click on the button savedcontrols.
I've made two custom classes ("banana" and "box"). As I start my application I create two new objects from these classes - first I create a banana object and then a box object. The banana class/object has a property/variable ("weight") that I set with information from an external XML file, thus it takes a while for it to receive a value.
My problem is that my box object needs to access the "weight" property of the banana project, just after the box object has been created. The problem is that the banana object hasn't finished initialising when I make the request from the box object...
Is there a way of either check the status of another class (initialisation status that is), or is there another way of preventing the box object to either be created before the banana object is initialised?
I want to be able to make my own math-functions, so that I don't have to write the same trivial functions in all my classes. I would like to import a class called something like MathExtended, and then use functions like this:
MathExtended.sign(x)
I have made an example that tries to import a custom class like that:
Code: /* This is the main script which my fla. runs. */
I'm having a lot of trouble understanding a certain thing.I'm creating a child of a symbol in my 'main' class.[code]I have no idea how to access 'player' from a seperate class? I would like to change x and y coords from a seperate class. However when I use code like 'player.x = player.x + 2' i get the error message Line 17 1120: Access of undefined property player.I guess in the most simple words, I do not know how to access symbols or their children from a class that is not the document class.[code]Basically I just am curious as to why I can't simply access these items from another class?
I have created some (TextInput, ComboBox, CheckBox) Component instances (created as a public objects) in a Document class and added them to the stage.
Now I have created a custom class for a movieclip in library and instantiated it in the document class (also a public instance).
I need to access the component instances in the custom class. How to do this ?
Also, Is it a good practice to use ENTER_FRAME event frequently ? because if I can't access the above components instances in the custom class then I will be left with no choice but to use ENTER_FRAME event in the document class every time I need to change some value in the components...
I've made a custom sound class: ActionScript Code: package { import flash.events.Event; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundTransform; [Code] ..... What I would like that class do is to trace a variable that is on Main.as which is Document Class, after a sound completed playing.
I'm trying to make my own picture browser for my webpage, and have run into a problem I can't solve. My guess is that this is kinda a newbie-problem, but anyway here I go...
I have made a class (as an extention to MovieClip) in a seperate file where I can load a picture and later resize it into a thumbnail. I have no problem showing them, but when I tried to make a MouseEvent for clicking onto the shown thumbnail and then tries to access the instance the event sends me, I get :
TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::Loader@22c30791 to ThumbNail. at PicBrowser_fla::MainTimeline/clickedOnThumbNail()
I don't understand why it complains on 'Loader'!?And what is the best way to access the instance of the 'ThumbNail' in the MouseEvent?
I am able to dynamically create an object on the stage with a function, but I am at a loss for how to access and manipulate the properties of that object from my Main Class.
in my Main Class I have:
ActionScript Code: NLP_addChild.addObject(stage) // NLP_addChild is the other class addObject() is the function
in NLP_addChild Class appears the following:
ActionScript Code: public static function addObject(stage:Stage) { var myCircle:MovieClip = new circle()
[code]....
myCircle displays correctly on the stage, myCircle is correctly assigned an x of 300. But myCircle x property cannot be assigned from my main class.
I began with a class for a movie clip rollover function FigureRollOver. It works marvellously. Three things happen:
1) it loads XML from a file "mod1_fig1.xml" and uses another class, XMLMember, to retool the scoping of the XML so that I can get at it
2) an onload call inside of XMLMember calls the myOnLoad function and transfers the XML into an array.
3) so long as the array is finished building, rolling over a movie clip attaches a new movie clip with the rollover text in it.But I don't want all those functions in one because I need it to be more dynamic, starting with being able to load any old xml file instead of just "mod1_fig1.xml", plus it seems lik overbuilding to have all of that in one class, so I've separated out the loading of the XML and building of the array into its own class, FigureXMLLoader. FigureRollOver is then left to just attach the rollover with text in it, extracted from the array built by the new class.
Problem is, though the array builds inside FigureXMLLoader, I can't figure out how to make it available outside the class. I know that I'm constructing things in the wrong order, and that the array needs to be somehow built inside the class function to be available, but I can't figure out how to do that. A cruddy work-around is to put a function call at the end of the building of the array, which calls yet ANOTHER function on the main timeline of my .swf to put the array I've just built into a new variable.This works, but it's messy. It seems like I should be able to have one line of script in the .swf that generates an array on the main timeline (or just a public array) which I can then access from my FigureRollOver class:
var myRollOvers:Array = new FigureXMLLoader("mod1_fig1.xml");
Here is FigureXMLLoader (see comments in the code for more details) which obviously does not return an array as it is, because of all the working around I've had to do. Note the "testing" variable, which can be traced from the main timeline of the .swf, but I will get "not what I want" because of course the array hasn't been built yet, and never will be, inside of the declaration as it is. How do I get it in there so I can return an array?
i am making a few object of action script..,what special about this object is that in the contructor function of this object is that i make it to send a sprite parameter which will act as it's parent..,var anObject:myObject = new myObject(parentSprite);and in my main project i used those object and store it in an array after adding it to the stage.i do store it to an array cause i need to be able to refer back to it..everything was fine up until i need to call function inside that object which i already stored in an array. how should i call the function in that object from an array that stored the object?
I have a MovieClip, that I'm going to add to the display list with my document class at runtime beacuase there will be many instances of it. The MoviClip "box" has 3 more MovieClip instances inside it,and each of those three have two more.It looks like this:
I make classes that extend movie clip, but I want to dynamicaly create instances of this class, so I really create MovieClips, but with the added features of the class. How should I create this instances? I want 'this' to be the root of this new movieclip with added features
I make classes that extend movie clip, but I want to dynamicaly create instances of this class, create MovieClips, but with the added features of the class. How should I create this instances?
I have a .as file with a load of functions that i include using : include "myFunctions.as".They can be accessed alright.I have a custom class that extends movieclip, and i want to use a function inside that class that is located in my "myFunctions.as" file.How do i do that? Seems like the class loads before the myFunctions.as file so the functions are unavailable at this time. I get that error message :
I have a custom class that animates a set of movie clips. Something like coverFlow or Carosell. What I want to do is pass a array of all the movie clips to be used by the class. I am not sure an array is the best solution but it makes sense to me. The class will not always know how many movieclips are being passed so with an array I can get the lenght and deal with it. here is the instaciation code of my class mBack and mFront are movie clips on the stage.[code]I get this error Type Coercion failed: cannot convert flash.display::MovieClip@113d2061 to Array.it kinda of makes sense why I got the error but if this is not correct how do I pass a list of mc's to my class.
Would it be possible for me to also dispatch non-custom events (like Event.CHANGE) from inside a class? I already did this with custom events which worked fine, but when I try to dispatch a the Event.CHANGE it will tell me that I am trying to convert a String into an Event (??). What I do is:[code]
I've been programming with AS2 for a few years and I just made the switch to AS3. I'm hoping there is an easy solution to this problem. I have a class 'Actor' (extends MovieClip) that needs to hitTestPoint on a nested MovieClip 'root.World.walls' in a function moveRight(). The line of code looks like this: ...while (MovieClip(root).World.walls.hitTestPoint(pnt.x, pnt.y, true)) {... But I keep getting various errors when I try different solutions.
I have this very simple ImageLoader class:[code]this doesn't work anymore, because of the presence of the stage movieclips "preloader" and "imageLoaderClip".Which is the most common way to make the things work? I thought to pass a reference to the ImageLoader class as a parameter (eg I pass the preloader and the movieclip that loads the images).
I have a custom class I am working on, one of the methods is:[code]Inside that function a dynamic TextField is created called txtLoaded, it is declared with [code]mcProg is added to the stage, I see the txtLoaded txt field drawn as well and I can trace properties of mcProg from elsewhere in the class but I cannot access mcProg.txtLoaded from anywhere else in the class.I imagine this must be a scoping issue, with txtLoaded only existing inside the createProgress method, but is there any way for me to be able to access txtLoaded from elsewhere in the class?
I am new to AS3, as well as Flash in general, so forgive me if this seems highly elementary. All I am trying to do is create a custom class that extends the MovieClip class and contains a custom property of "marker". I want to be able to use and change the value of this custom property on the timeline for an instance of this class and have it behave just like any other (Ex: this.x ==> this.marker).
I have a custom class being constructed from my main class. In the custom class it has another custom class that is passed in as a parameter. I would like to strictly type the parameter variable but when I do, 'the type is not a compile type constant etc'.This, I understand, is because the custom class used as a parameter has not yet been constructed.It all works when I use the variable type ( * ) to type the parameter.I suspect this is a design flaw, in that I am using an incorrect design pattern.It is actually hand-me-down code, having received a large project from someone else who is not entirely familiar with oop concepts and design patterns.
I have considered using a dummy constructor for the parametered class in my main class but the passed in class also takes a custom class (itself with a parametered constructor). I am considering using ... (rest) so that the custom classes' parameters are optional.Is there any other way to control the order of construction of classes? Would the rest variables work?edit)in main.as within the constructor or another function
var parameter1:customclass2; customclass1(parameter1); in customclass1 constructor:
I am still transfering from AS2 to AS3 and right now i am having a very annoying problem. THE STRUCTURE: Maintimeline contains 2 buttons that i want to use to access children in a bunch of movieclips. rectangle_mc has circle_mc circle_mc contains xx_mc xx_mc contains wtf_mc placed on frame 1 on maintimeline Why can't flash see my nested movieclips? I remember in AS2 you could go down the line:
I am starting with AS3 programming icm with Flash Builder 4.I have created a "Main" class which is the initial stage.On this stage there is a movieclip called mcMain.In this mcMain is 4 other movieclips: mcStats1 mcStats2 mcStats3 mcStats4 .How can I access these mcStats1-4 from the code to make them go to another frame?I tried:
var t:MovieClip = MovieClip(getChildByName("mcMain")); t.getChildByName("mcStats1").gotoAndPlay(3);
But that just keeps giving me null reference errors:TypeError: Error #1009: Cannot access a property or method of a null object reference.