ActionScript 3.0 :: Flash - Reference Movieclips Between Classes?
Jun 6, 2010
am trying to get a movieclip in one class to stay at the same x and y value of a movieclip in another class. the arm is meant to stay on the player's mc in armClass.as .here is the code.
After switching to AS3, I've been having a hell of a time figuring out the best way to manage MovieClips that have UI elements spread across multiple frames with a single class. An example that I am working on now is a simple email form. I have a MovieClip with two frames:
the 1st frame has the form elements (text inputs, submit button) the 2nd frame has a "you" message and a button to go back to the first frame (to send another email) In the library I have linked the MovieClip to a custom class (Emailer). My immediate problem is how do I assign a MouseEvent.CLICK event to the button on the 2nd frame? I should note at this point that I am trying to avoid putting code on the timeline (except for stop() calls). This is how I am 'solving' the problem now:
Emailer registers an event listener for a frame change ( addEventListener("frame 2", onFrameChange) )On the 2nd frame of the MovieClip I am calling dispatchEvent(new Event("frame 2")); (I would prefer to not have this code on the frame, but I don't know what else to do)
My two complaints with this method are that, first I have calls to addEventListener spread out across different class methods (I would rather have all UI event listeners registered in one method), and second that I have to dispatch those custom "onFrameChange" events. The second complaint grows exponentially for MovieClips that have more than just 2 frames.
My so called solution feels makes me feel dirty and makes my brain hurt. I am looking for any advice on what to do differently. Perhaps there's a design pattern I should be looking at? Should I swallow my pride and write timeline code even though the rest of my application is written in class files (and I abhor the Flash IDE code editor)?
I absolutely LOVE the event system, and have no problem coding applications with it, but I feel like I'm stuck thinking in terms of AS2 when working with mutl-frame movieclips and code.
Been trying to make the transition from AS 2 to 3 but not without it's speed bumps. My first major hurdle has been trying to dynamically reference a class by only knowing it's name. I came across the code of import flash.utils.getDefinitionByName; but that's not working for some reason. It keeps giving me the error:
Quote:
ReferenceError: Error #1065: Variable characterType5 is not defined.
My code in getting this is:
PHP Code:
import flash.utils.getDefinitionByName; var className:String = "characterType" + 5; var tempClass:Class = getDefinitionByName(className) as Class; var char = new tempClass();
classes. GiftMain and GiftItem. i attached GiftItem objects into GiftMain. Actually there are 2 more movieclips between them. i declare a variable in GiftItem as giftMain to reference it to the GiftMain. i have a function in GiftItem which is as below;
[Code]...
trace outputs the right object in this function in GiftItem class but at another place in the same class, it outputs undefined when it is traced even though it is global variable. I just want to reach GiftMain from GiftItem without using _parent or _root. How can i do that?
I am trying to load the movie clips in my library one by one, using a for look and tween them but it seems as i am getting an error Stuff in my Library
Is there a good way to dynamically reference a class that is created inside of another class?
Say, for instance, I have a main class called "Country", and from that class, I am creating individual "State" classes. So the Country class is creating State classes named "Texas", "Ohio", and "Iowa". And each State class has a value called Capital. [code]...
I'm adding many custom classes on stage using the object.registerclass trick. Those classes all implement the same interface so I can call common functions for all of them. My problem is that I have many of those custom classes for which I keep a reference in the class where I'm attaching them to the stage with attachmovie. So, in this parent class, if I do a for in loop like this:
I'm loading a bunch of SWFs at the same time. I'm using a custom class to do the loading. Most of the time they all load OK, however occasionally one or two will be unloaded (I can see that in the console) before we get to the Event.COMPLETE. The ProgressEvents are all fine - I can see them loading, but then boom - they're unloaded.
I've done a bit of digging around and discovered that this may be a bug in the Loader class where if you are using multiple instances of the class then sometimes one or more will be Garbage Collected before they finish loading and are therefore unloaded. I've tried keeping a reference to the loader and the classes holding the loaders and I'm still having the problem. The solution is to queue the loads and load each swf in order which isn't a problem, just a bit irritating.
I've created a carousel class which takes one parameter, an array of menu item names, these will then be displayed on the carousel. I've then created two movieclips for the left and right controls, added them to the library and given them classes of their own.Within the carousel class I instantiate instances of the two control classes which then enables me to add event listeners for rollover and rollout.
What I'd like to know is, is this the best way to do this short of creating the controls using pure actionscript?I'd like to not have to add the class properties for the left and right controls and have a situation where I could just give them the right name and they would work or maybe pass them in as parameters and use them that way.
multiple classes and then register each movieclip from the library to a different class? It isnt working for me. I created two different classes and created two entire different movieClips and registered each movie clips to a different class. However, I can only use on movieClip at a time, when I use the duplicateMovieClip. command to create copies of the movieclip, i find that only those movieclips, whose class i declared first, appear on stage
How is this done in ActionScript 3.0 properly?I just want my external class (mech.as) to be able to be used in my FLA (main.fla), by making a MovieClip and assigning it the "mech" class.
Probably because I just think wrong again in as3. Here's the point: I made a document class called main. In this document class I create 2 Movieclips and add them to the stage, by simply using addChild(). Here's the point. Those two movieclips can't reach each other. If I do trace(ground) in the main it works, but copying the same line into the player class doesn't work. They should be on the same "layer" right, not inside an other MovieClip (or root). What does the addChild in the document class do exactly? On which layer are the MovieClips put?
Can you declare multiple classes and then register each movieclip from the library to a different class? It isnt working for me.
I created two different classes and created two entire different movieClips and registered each movie clips to a different class.
However, I can only use on movieClip at a time, when I use the duplicateMovieClip... command to create copies of the movieclip, i find that only those movieclips, whose class i declared first, appear on stage.
I am having some trouble with Classes with respect to a movieclips 'As 2.0 class' in the linkage settings.After an attachMovie i am expecting my Class members to exist but they are not
OK, This is what i was doing...I create a MovieClip called Class1_mc and another called Class2_mc, original eh.i then stick an instance of class2_mc INSIDE of Class1_mc, call it clipinner
ok so i assign Class1 to Class1_mc and Class2 to Class2_mc via the linkage settings.
I have a designer who has created a set of movie clips that I want to create instances of using ActionScript, but all I have is the name of the MovieClip as it's stated in the library (not the instance name).
Is there any way to create instances of the MovieClips using just their name? Or do I have to create separate classes for each?
what the easiest way to play movieclips is using pure AS in classes. Basically, I have a MC instance on the stage with 25 frames and simply want to play it once. Using the play() method causes it to play infinitely, and I can't find any other methods which let me choose the frames i want to play between.
TypeError: Error #1009: Cannot access a property or method of a null object reference. at com.common::stageConfig() at cloudsMain() CloudsMain.as which is attached to the .fla
[code]....
Basically I'm trying to create a class that I can call and centralise any mc on stage by eg.stageConfig.centralisedDO(my_mc), However I encounter the above error.
Let's say I have a movieclip in my SWF's library, and its linkage is set to "MyClip" and it's set to export.
I can add it to the stage by saying "addChild (new MyClip as MovieClip)"
Now let's say I load a SWF as a loader object, and that loaded SWF has a similarly linked movieclip. How do I reference the linked movieclip in the loaded SWF?
i'm creating an application using AS3.0 and class files. in this application i have a MovieClip in the library i'm using that contains several symbols and configurable textfields and have already defined the functionality for these symbols. my question is, if i'm creating an application and through actionscript and i'm spawning instances of a symbol, do i have to define the functionality and initialize this symbol in the main application class?
specifics: i'm creating a panorama app with markers that are papervision3d planes. they use a movieClip texture that i've created and i want to configure textfields and display pictures that describe the info in the marker. i created a panoApp.as class file that configures the panorama. but i also have a marker.as class that defines the symbol's behavior. this movieclip has symbols in it it's stage that i've defined (ie: name_textfield, description_textfield, etc..) when i compile the project, the compiler errors saying that the variables/identified internal symbols are missing.
I have a site with ScrollPanes, that are calling a Class on what to display. (so the movieclip that I want displayed in the ScrollPane has a Class name.) Within that movieclip (webScroll) that is being displayed in the scrollpane, I have 2 other movieclips (web1 & web2), with unique instance names and eventlisteners targeting those instances. when I preview my site, i get this error: 1119: Access of possibly undefined property web2 through a reference with static type Class.
i am able to successfully load a .swf into a movieclip called GameLevel, but now i am unsure how to reference the objects that are named within.for example, in the .swf i have an instance of my character named Hero, but i don't know how to reference him. the following code would usually return the correct movieclip:
I have an array of ingredients for soup as strings. These ingredients are also movieclips in my library, all linked with an identifier. I want to add the movieclips to the stage dynamically.
I tried getDefinitionByName but I keep getting an error that the variable "appel" (veg[0] in this case) is undefined. And basically, I only have a general idea what I'm doing here, so I would be grateful if someone could explain it to me or link me to a helpful tutorial.
I modified an Adobe Flash CS5 sample to create a swf with a preloader. In my FLA I've two stopped frames:In the first frame I only put this code (and a textfield showing percentage):[code]When I test the Adobe sample (it has no main class on frame 2, only a large image) anything works fine, but when I compile the modified version I get strange errors. In the Main class constructor I reference three movieclips, eg. this way: myClip.alpha=0, but it seems now Flash can't see them anymore (they are null). Why?