ActionScript 3.0 :: Targeting Movieclips On Stage?
Apr 19, 2010before it was just
somemc._x = someotherMc._x
but as3 doesn't know how to identify someotherMC
[code].....
before it was just
somemc._x = someotherMc._x
but as3 doesn't know how to identify someotherMC
[code].....
I am still sorting out how things translate to AS3 so here it goes:
In the land of AS2:
Say you for looped 5 times and placed movieclips on the stage (attachMovieClip) each one having an mc inside called box_mc. You named them in the loop mc_1, mc_2, mc_3, mc_4, mc_5.Then later you wanted to rotate that box in them you could for loop again and target/rotate the box with a line like this:
this["mc_"+i].box_mc.rotation +=5;
Now in the land of AS3:I place 5 movieclips using addChild and the way I later target the box_mc inside them is to use two lines something like this:
[code]...
I know this method works, but is this the most efficient/correct way of doing this? I tried to get to the box_mc level when assigning the targetMc var, but never found a way that didn't error.Compounding question, how do you make an old line of AS2 work in the AS3 world like this:
this["mc_"+i]["child_mc_"+j].box_mc.rotation +=5;
On my stage, I have a bunch of movieclips with sequential instance names ("toggle1", "toggle2", etc.). I also have another bunch of movieclips, each with their own sequential instance name ("name1", "name2", etc.).How can I set it so that when I click on a "toggle" movieclip, a specified property changes on the "name" movieclip with the same number.Here's what I have so far.
ActionScript Code:
for (var i = 1; i <= 16; i++) {[code]....
What am I missing/doing wrong?
how to target MovieClips from a class. If I have a MovieClip on the stage named recMc and I want to manipulate it using a class, I know that if I attach my class in the Document Class field in my .fla file and then just do something like this... it works
- class and fla are in the same folder -
Code:
package {
import flash.display.*;
import flash.events.*;
[Code]....
how to target this object without attaching the class to the Document class?
I have a movieclip added to the stage through a function.
ActionScript Code:
function myFunctionOne():void{
var myClipA:clipA = new clipA();
myClipA.name = "myClipA";
addChild(myClipA);
}
To access this item on the stage I have to use:
ActionScript Code:
getChildByName("myClipA");
I have some other movieclips INSIDE this clip that have also been dynamically added. If I want to reference one of those clips I have to reference them by name using getChildByName.
[Code].....
But is there a better way to reference movieclips if they are created inside a function, or is there a way to create them so they are always globally accessible?
Im creating movieclips based on the items in an xml file. It pulls the data in ok, and loads in an image from the given description, and poisitions the clips ok.
Where i'm falling down its assigning button functions to these clips. I can not reference the clips indivually it always refers to the last clip created.
code sample below
files attached also
// Import Classes and Tweening
import gs.*;
import gs.easing.*;
import fl.motion.easing.*;
[Code].....
I have the MovieClip named dessin, which loads another MovieClip named dessin (dessin.dessin). Now, there is a MovieClip named displayPlane, in the new MovieClip (dessin.dessin), in the MovieClip named displayPlane, there is a variable, which goes as follows:
Actionscript Code:
var _loc3 = displayPlane.attachMovie("displayNode", "displayNode_" + projectCount, projectCount);
inside that clip, there are multiple MovieClips in vars, I am trying to specifically target one var, the following:
Actionscript Code:
var _loc8 = this.attachMovie("closeBtn", "closeBtn", 5);
I have tried this code to target that specific MovieClip with no success.
Actionscript Code:
_root.dessin.dessin._loc3._loc8
Right check this:
/////////////////////////////////////
/////////////////////////////////////
///////////////FUSE//////////////////
/////////////////////////////////////
import com.mosesSupposes.fuse.*;
[code]....
But the problem is the thumbMov movies will obviously have a uniquely generated instance name i cant target directly due to the "for" loop..How can i modify what ive done to target any of the thumbMovs with the FUSE functions?
I'm generating movieclips based off of an xml file. The images load fine but I can't figure out how to target them for onPress actions.
[Code]...
I'm dynamically creating movieclips with dynamically created movieclips inside them and am having trouble with targeting them.
Below is a simplified example of what I'm trying to achieve, in the real file there are a lot more movieclips and I'm creating and naming them with a for loop.
This one is just one Sprite created inside another sprite. I can target the top level sprite named "testname". However when i try target the nested MC it throws an error.
The bottom couple of traces are just test MCs I've made to make sure i got the syntax right, on targeting nested movieclips.
PHP Code:
var holder:Sprite = new test1();
holder.name = "testname";
this.addChild(holder);
[Code]....
is it possible with AS3 to see the list of the movieclips that are on stage?
View 13 RepliesI'm trying to target an MC that is already placed on the stage (as opposed to adding it from the library).
But I get this error:
Quote:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com::Test()
at objects_fla::MainTimeline/frame1()
[Code]....
I'm trying to access a text field from what I believe is called a sub-class. The text field is defined in the .fla file and the .fla file is set up to use Main.as as its document class.I got three files; scrollText.fla, Main.as and TextUtils.as.I know most of the code is working as I programmed it all in Main.as first, but when I moved the code to target the text field into its own class file I ran into error "1120: Access of undefined property" although I have declared the variable correctly and early enough to be used at this point in my code.This is the code I got so far:Main.as
Actionscript Code:
package{ import flash.display.Sprite; import TextUtils; public class Main extends Sprite public function Main()
[code].....
on MC2's timeline I want to target objects on the main stage. Not sure on how to write that without using root. I've been trying deviations of
MovieClip(parent).MovieClip(parent).mcName.
First let me say I'm relatively new to AS 3 and I've scoured the Internet looking for a simple solution to no avail.Here's my general situation:1) I have dragged a movieclip with an instance name of a_mc onto the stage.2) On the first frame of the timeline I am importing a class file and calling its constructor:
Code:
import cardmaker.*;
var coverMaker:CoverMaker = new CoverMaker();
[code]........
I attached a movie that I am working on. I use the duplicate actionscript to put several buttons on the stage when clicked. I then want to be able to use the color picker to change the background behind the buttons. As of right now it only works on 1 button and by changing the 6 in this code for (i=1; i<6; i++) to 5, 4, 3, 2 or 1 it will only change that button. How can I get them all to change at once?
View 1 RepliesLooking for a way to stop all movieclips both are the stage and that are children of the ones on the stage.
I toyed with looping thru stage's children so I can first target clips on the stage. But I am getting error.
for (var i:int = 0; i < this.numChildren; i++) if (this.getChildAt(i) is MovieClip)
{
this.getChildAt(i).stop
}}
I have a function that attaches a movie clip to the stage each time at a new level.
myLevel++
attachMovie("myMovieClip", "instanceName"+myLevel, myLevel)
}
At the moment it works just fine but I want to target specific instances and I can't work out the instance names.I am trying this..
instanceName[myLevel]._x = 400
On the stage I have a movieclip called mc_back. I also have a movieclip on the stage called mc_content. Now, inside mc_content I have a bunch of code and some of it adds, or should add, an EventListener to mc_back as well as a a function that works when mc_back is pressed.
So basically, all code is written inside mc_content and some of it needs to interact with mc_back.
how to target mc_back from inside mc_content. Using stage.mc_back or root.mc_back doesn't work and Google should be my friend, but in this particular problem, it's acting more like my enemy.
I'm having a hard time trying to accomplish this. I want to have several different movieclips on the stage, either added there when making the fla or dinamically created through AS3 and I want them to be controlled by a certain function. I read the blue circle tutorials on this site but I'm not sure I got it right I have done something similar to this (not posting the real thing because it's not in English and too long):
public class blabla
private var variable1
private var variable2
[Code].....
I'm not sure what to do to have the function work with different movieclips using different arguments. I could change this for an instance name, for example, but then I would have to do a function for each mc and that wouldn't make any sense. It would be cool if I could give the instance name as an argument but I don't think that's possible.
I have one MC on stage with instance name "box". That MC duplicates by using this script:
Code:
duplicateMovieClip (box, newname="box2", this.getNextHighestDepth());
box2._x = xPoz;
box2._y = yPoz;
So the new MC is now called "box2".
Inside original MC "box", I have one button. After click on that button, I need to know on which MC I clicked. box, or box2. I tried to use:
Code:
trace (this._name);
But, that get me only instance name of the button.
i made this code that duplicates a movie clip randomly in the stage but i want it to be duplicated out of the stage.
View 1 RepliesI wasn't sure if I were to put this in the Actionscript forum or in here, so I put it in here. I'm making a small test for a game so I made two attached movieclips to the stage. I got them to move at each other, but when they hit, it doesn't detect it. Is there anyway i can make them hit eachother? Heres the code
[Code]...
I have 2 movieclips in the library exported as class d1 and d2 , I want to add them to the stage using something like the code below.
this doesn't work but you can understand what i want to do. what is the correct syntax ?
I've got a long list of similar movieclips I'm adding to the stage. There's 9 in total and the code looks like this...
stage.addChild(zone0_mc);
zone0_mc.x=267.6;
zone0_mc.y=120.5;
[code].....
I have a file where movie clips are added to the stage at random time intervals and locations. How do I get pieces of code to effect all the created movie clips? At the moment I'm using attachMovie to add the movie clips to the stage. Once a movie clip is added I want to add three actions to it: the first makes it so that clicking on the movie clip will remove it from the stage, the second makes the movie clip move in a random direction across the stage, and the third makes it so that when the movie clip reaches the end of it's own timeline it performs an action then removes itself.
View 8 Repliesfor (var i = 0; i<= 3;i++){var pic_mc = new MovieClip(); pic_mc = MovieClip(getChildByName("mc" + i));trace(pic_mc); pic_mc.alpha = 0; pic_mc.x = 0; pic_mc.y = 0; pic_mc.addEventListener(Event.ENTER_FRAME, animate);
[code].....
I have some movieclips on my stage that are there via timeline. I also add movieclips on stage using addChild.
What is the best way of changing the order of the movieclips because they overlap sometimes? eg.
mc_a is on the stage already
mc_b is called on stage using addChild
Can I change the order of mc_a using script even though it was already on stage?
Can I remove mc_a off stage using script?
How do add mc_b under mc_a so that mc_b does not overlap mc_a?
I am creating a miner game (where there are pieces of gold and you have to catch them with hook).I modified the Main class to take all children of MovieClip(root) that has name "Gold" and them put them in an Array(boulders[]) where later check collision (I design and put on stage several "Gold" MovieClips for every level). When the player collects all gold (when the boulders array.length <= 0) then goToAndStop(nextLevel), where again it takes the gold MovieClips from the stage and if it's name is == "Gold" then put's it in the boulder[].
What happened: On the first level(frame 2 cause frame 1 is the preloader) everything is good - I have 2 gold MovieClips on the stage(in design mode) and all 2 gold are put in the array and displayed.
On the second level I have 4 gold and only 2 of them are put in the array and displayed.
On the third level I have 7 golds designed on stage, but only 3 are displayed and put in the boulder array.
It's almost the previous count of the gold(on the previous frame) are subtracted from the count of the next frame gold movieclips.I am placing the Main.as code:
public function createLevel(){
nextLevel = this.currentFrame + 1;
for (var i:uint = 0; i < MovieClip(root).numChildren; i++){[code]....
It this part in qeustion "if(ball._x + ball.width / 2 > 400){" should the trace function be recognised when the half of th ball moves over the 400 mark.
Its doesnt though and i dont know why?
ball.dx = 10;
ball.dy = 10;
ball.onEnterFrame = function(){
[Code]....