ActionScript 3.0 :: Accessing A Property In A Nested Mc?
Mar 19, 2010
I would like to rotate the yellow circle mc, w/ it's nested white circle movie clip, and use the drawing API to have a line continuously drawn to the white circle as it moves around.
I'm using the code below. The line gets drawn to a static point, and not to the white circle (smBall) movie clip as I would expect.
I'm trying to organize a presentation using several movieclips as "scenes." The problem I have is related to buttons nestedwithin those mc's--I would like them not to be available until eachindividual mc begins, but if I don't include the buttons on thefirst frame of the mc timeline, the main timeline cannot accessthem (and throws me an error)
I'm working on an educational game that interacts with randomly selected characters. The names and attributes are imported from xml. I have a mc called characters that contains each character on a frame tagged with their name. The frame label is the characters name and I am having no problem displaying each character as they are randomly called.
Code: characters = new Characters(); characters.gotoAndStop(characterName); characters.y = 350; gameSprite.addChild(characters);
Each charater is a mc with 2 frames one with mouth closed and one with mouth open. Because the characters are accessed using the variable characterName as the frame tag I can't figure out how to tell the movie in AS3 to gotoAndStop on frame 2 of the character mc. I've tried numerous variations and just can't get it to work.
This is probably a very simple solution, but I can't seem to find it online. Basically, I have a button that need to change a movieclip's frame in it's parent.So I tried:
But it's not working! I know I'm getting to the right locaiton because _parent holds a variable, and I can access that just fine. But I for some reason can't access the movieclip at all.
Note: I can't upgrade to AS3 (What I'm used to) as this isn't my file.
I'm trying to activate a nested movie clip with a button in the main timeline. I want the button to move the nested clip to the 2nd frame, thereby passing over the stop(); in the first frame. I'm not sure how to point the button at the correct timeline, though.
I'm trying to access some information in XML. I got the first few nodes working, but for the life of me, I can't figure out how to get to the nested nodes. I've tried everything i can think of. I thought it would have to do with nested for loops, but i couldn't get it to work. What am I missing? I've been pretty successful with simple XML, and this is relatively simple too, but more than I'm used to at this point... If there is a better way to do any of this, I'm all ears (or all eyes in this case )
I have a movie clip (assigned to a class) with several keyframes. Each keyframe consists of another movieclip, which contains an animation and all use the same name. Lastly, several of the animations contain a third movieclip, which is also assigned to a class and also use the same name. I need the first movieclip to speak to the third, unfortunately, it simultaneously tells me that the clips in the second layer (the ones at the keyframes) exist and do not exist. Namely: second layer "does not exist" in that the primary movieclip has only one child: a null. If I add other movieclips to the primary's frames, they also report back as nulls depending on what frame I'm on. I've tested this in several parts of the code, though I suppose it's possible that I managed to pick five equally bad spots. It's just so bizarre I still don't know what to think about it. However, the second layer of named clips are there, but I can only prove it by deliberately breaking the code in hopes of deliberately getting a reference error (by attempting to make the clip private, which isn't allowed given my setup).
After quite some time I finally decided to pick up Flash again, this time taking the OOP route. I'm a bit rusty though, so I'm stuck on something pretty basic.Here's my Layout of relevant objects and scripts:
As you might've guessed, what I'm trying to do is set the gunAmmo.text property from within my pistol class. I've tried using MovieClip(root).gunAmmo, stage, etc., but neither seems to be working. I sort of get why, but I don't know what the correct syntax is. (And yes, the TF's instance name has been set correctly.
Let's say I have Class Holder linked to a MovieClip holder_mc. holder_mc has a child held_mc that has a Graphic Symbol pic_gr. pic_gr has multiple frames.
From the Class file of Holder, how would I change the frame of pic_gr? I also didn't see a way to name the instance of pic_gr, is that right?
I am having a newbie problem here. I am loading an external SWF with embedded movieclips (all clips are set to export in the original file). However, I can't figure out how to access those embedded clips in my new, parent, flash file. Here is my code:
Code: var container:MovieClip=new MovieClip() var house_Loader:Loader = new Loader();
(Actionscript 2 btw - and actually cs4, not that it really makes any difference?) I have a class that instantiates a movieclip from the library, e.g.: Code: debugbar:MovieClip = thing.AttachMovie("debugbar", "debugbar_mc", 999); So attaching it to the where ever "thing" is - could be movie clip or level0 or whatever, doesn't matter as "debugbar" is a private variable of the class. Now the important part - debugbar in the library is a movieclip that contains some components - buttons and textInputs. The problem comes when trying to access these components.
I would have thought that this would work: Code: debugbar.input_txt.text = "hello"; In order to set the text of "input_txt", the instance name of a TextInput component on the timeline of the movie clip (put there in author time). However, this does not work. Infact, I cannot access any specific "component" properties - they come back undefined. I can however set and retrieve MovieClip properties for the "input_txt", such as _x. However there is one added strange thing with this too - setting _visible to false doesn't seem to work (however perhaps a component by default overrides this).
I also appear not to be able to add event handlers to the component - at least for the usual component events. I tried casting it to a component, such as: Code: var temp:TextInput = TextInput(debugbar.input_txt); trace(temp); which gave "temp" as null. However if you trace the thing itself without casting to what it is, it gives the path to correctly. It almost seems like the components are somehow broken when trying to access them this way - or that they cannot be accessed this way?
The thing is, I was able to access all of this before, when the code to do it was placed on the timeline (frame 1, the only frame) of the debugbar itself, where the components were child instances. This meant I could just reference them directly too - so input_txt rather than debugbar.input_txt , although that is probably largely irrelevant. I need to have it in a class though, as I need to pass in certain objects that need to be accessed by the mc.
I was trying to access some nested movieClips from the main time line but it was giving an error. What I have is a movieClip on the stage called "dog" and inside this movieClip I have two nested movieClips called "dogLH" and "dogRH". The movieClip "dog" was brought to the stage using actionscript 3.0 and when I tried to move the moveClips inside "dog" it gave me an error.
This is the code I have:
var dogog = new Dog(); dog.x =200; dog.y =150;
[Code]....
What is strange is that if I add the movieClip "dog" to the stage manually and try the same thing it works. Any idea why it doesn't work when it is brought to stage with actionscript, but it works if I bring this manually?
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 can reference the main library Class, but the clips nested within are coming up undefined and the usual parent.child.child method of accessing clips using getDefinition isn't working.
Here's my coding:
Code: Select allpackage { import flash.display.*; public class Menu extends MovieClip{
[Code]....
I tried both instances naming and Class naming in the library. It loads the clips within the menuClip. I can see them, but I don't have access for some reason.
I have been searching for a resolution to this for weeks but to no avail. I have made a game already where I had a character names mainChar placed on the screen using the Flash IDE. With this method, i was able to access it's various nested movieclips such as mainChar.walk and mainChar.jump. The problem is that I am making a new game where the main character is loaded via external code using hero:mainChar = new mainChar(); in the external file. after this, i would like to check what the current frame of a nested movieclip is. for example, hero.walk.currentFrame. however, by initializing it using the external code, as opposed to my previous method of placing it right on the stage, the compiler is not picking up of hero.walk.currentFrame stating that "a term is undefined and has no properties (error type 1010)". Is there any way for me to let the compiler know that the nested movieclip is there. It's odd because i can state hero.gotoAndStop("walk"), but when i say hero.walk it gives an error, so i know it isnt spelling.
How would you go about accessing a function or variable from a parent clip if the clip accessing has been loaded using the Loader() constructor in AS3?
I have a movie clip menu on a main timeline and inside that movie clip I have created four buttons dynamically. How to access those nested buttons/movieClips (add event listeners etc) from main timeline? Here I am adding menu to the display list on main timeline:
//I want to access the button "myButton1" here. How would I do that? the example below does not work myButton1.label = "something else" I have created a set of x number of buttons with the code above and added them to the stage. My question is now do I access the button again if I want to change something like the label?
I have a class that instantiates a movieclip from the library, eg: myBar:MovieClip = level0.AttachMovie("debugbar", "debugbar_mc", 999);
myBar is an instance variable in the class.
Now the important part - debugbar in the library is a movieclip that contains some components - buttons and textInputs. The problem comes when trying to access these components.
I would have thought that this would work: myBar.input_txt.text = "hello";
in order to set the text of "input_txt", the instance name of a TextInput component on the timeline of the movie clip (frame 1 of a 1 frame mc).
This does not work. Infact, I cannot access any specific "component" properties - they come back undefined. I cannot added event handlers for the component events either.
I can however set and retrieve MovieClip properties for the "input_txt", such as _x. However there is one added strange thing with this too - setting _visible to false doesn't seem to work (however perhaps a component by default overrides this).
I tried casting it to a component, such as: var temp:TextInput = TextInput(myBar.input_txt); trace(temp);
which gave "temp" as null. Without casting, it gives the path to correctly.
It almost seems like the components are somehow broken when trying to access them this way - or that they cannot be accessed this way?
The thing is, I was able to access all of this before, when the code to do it was placed on the timeline (frame 1, the only frame) of the debugbar itself, where the components were placed at authortime.
I need to have it in a class though, as I need to pass in certain objects that need to be accessed by the mc. I am rather baffled as to why all this doesn't work.
I am having a problem referring to stage properties, where I am trying to e.g. obtain a third of the width of the stage. My code keeps throwing up the "Cannot access a property or method of a null object reference." I have found a few things from a search online, but haven't been able to work through it yet.
I should also say that I am working in flash and have made a movieclip with a movieclip inside (which is to be used as a roll-over menu for image thumbnails). The instance name of the 'parent' movieclip is "galleryPane"; and mc inside has an instance name "thumbnailsContainer" .Here is my code:
I am getting the following error when I importmy swf onto my main stage: TypeError: Error #1009: Cannot access a property or method of a null object reference.
at FtScrollBar/set useMouseWheel() at ButtonsMenu_fla::buttonsScrollingMenu_1/ButtonsMenu_fla::__setProp_sb1_buttonsScrollingMen u_ScrollBarComponent_1() at ButtonsMenu_fla::buttonsScrollingMenu_1$iinit()[code].....
On it's own the carousel works fine, it's only when I import it that it throws an error, all of the components within the carousel work fine (the images are highlighted on mouse over, the onclick code for the thumbs runs the right functions) it's just the scrolling that doesn't work.I've tried removing the references to stage from the loaded swf but I still get the same errors.I'm fairly new to flash but I'm finding the error messages to be fairly unhelpful at the best of times, I've attached the swf I'm trying to load in in a zip
i need some help to understand how to access a property of a child of a DisplayObject. within a class i have an object with the variable name: btnLMain i have assigned it a name property: btnLMain.name = "btnL"; btnLMain also has a property: btnLMain.clickNum = 0; // thats the one i need to access when i instantiate the class (btnL) containing this code in the parent class i need to access the property "clickNum" so i did this:
I try access to (MySWF(movieClip)).id but I get a weird message error: 1120: Access of undefined property aslider Which is defined in MySWF.init. If I remove (MySWF(movieClip)).id program works perfect! Isn't this weird especially as I have added addEventListener(Event.ADDED_TO_STAGE, init); in MySWF constructor to ensure that aslider is on the stage.
In main: private var idMySWF:int; public function loadMySWF(event:MouseEvent) { idMySWF = 1; var myLoader:Loader = new Loader(); myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); [Code] .....