ActionScript 3.0 :: Target The MovieClip In The Listener Of Its Tween?
Dec 23, 2010
How to target the MovieClip in the listener of its tween ? I have an Array of MovieClip and each one have its own Tween. Each Tween have its own Listener. I want to target the MovieClip in the listener. I search in many forums and tutorials and I don't find anything convincing.
Code: var buttons:Array = new Array( _button1, _button2,[code]........
I have 3 buttons on my stage (this is a small part of a larger project), named _button1, _button2, _button3 declared in an array so I can dynamically assign listeners and use a substring of the instance name to determine which button was clicked for other functions.My problem is that trace(e.target.name); returns the value _button1 on ROLL_OVER and ROLL_OUT as expected. However when clicking the button it returns "instance9" instead of the actual instance name I gave it.Why is this happening and how do I make it return the correct name? Why the hell would my buttonClicked function return a different result from the buttonOver function where the target is the same button for each function?
I'm looking for an alternative to using: stage.addEventListener(KeyboardEvent.KEY_DOWN, keyFunction);
The problem I am encountering is that eventListener above works fine on its own(stand-alone swf), but when loading an .swf externally into another .swf, the listener fails with the following error: TypeError: Error #1009: Cannot access a property or method of a null object reference.
How can you target the event listener when loading as an external .swf differently?
I'm having trouble adding a cuepoint listener to a dynamically loaded .flv which targets a dynamically loaded .swf. I'm also adding cuepoints via actionscript.
Basically everything loads okay but I get a compile error in the the function cuePointHandler when referencing mc_slideLoader.
Scene 1, Layer 'Actions', Frame 1, Line 601061: Call to a possibly undefined method gotoAndPlay through a reference with static type flash.display:Loader.
I'm still a rookie with AS3 so I'm thinking the Loader class doesn't have a gotoAndPlay property and some how I have to get it to act like a MovieClip?
Here's the actionscript.
ActionScript Code: // using Flash version CS5 import fl.video.*; import fl.video.FLVPlayback;
I think this solution should be simple but I think I am missing something about using event.target.name.I have multiple (over 30) MovieClip images on stage with alpha of zero and I would like to have them fade in on MouseEvent.CLICK while removing the current image showing. While I can code it to work for a single image I want to use this.target.name to have more efficient code.
var profileholder:profileHolder=new profileHolder ;
inside of profileholder is another movieclip(infoBtn) that acts as a button.when the mouse is over profileholder i want to do something with infoBtn like:
//profOver is the over state of profileholder function profOver(e:Event) { e.target.infoBtn.alpha=1; }
this doesn't work and brings up this error:ReferenceError: Error #1069: Property infoBtn not found on flash.display.Loader and there is no default value. at main_fla::MainTimeline/profOver()
i also tried: function profOver(e:Event) { var item:profileHolder=e.target as profileHolder; item.infoBtn.alpha=1; }
and get this error:TypeError: Error #1009: Cannot access a property or method of a null object reference.
Does anyone know whether it is possible to create a Tween object where the finish property is based on a changing variable?_tween = new Tween(object, "x", Regular.easeInOut, object.x, movingTarget.x, 60, false);The idea is that finish position could be updated with each frame so that the object changes direction in the middle of the tween.I don't know if this is possible (or even desirable)
I'm not sure if if this has occurred to anyone before.... I'm using the built in tween-class of flash (cs4). In my script I try to display a notification-box using a slide-in effect: var slideIn = new Tween(this.warningBox, "width", Regular.easeOut, 0, 150, 0.5, true); This works. The box is invisible at start and then builds up like a flag unrolling from left to right. However, what I really want to do is sliding it in from right to left. So I tried to do this: var slideIn = new Tween(this.warningBox, "width", Regular.easeOut, 0, -150, 0.5, true); Obviously, I modified the warningbox so the pivot point is to the top right, but it still won't work. It seems the endvalue must not be a negative number. Can anyone confirm this, or have I missed something?
Here's how I'd like events to unfold:when the first image is completely downloaded, fade it up and start the timer After 5 seconds, pause the timer and completely download the next image. Fade it up and start the timer again Remove the previous image from the stage
I set my fade's alpha to .5 to see if the previous image was being removed, and it was not. What is wrong with my syntax?
I am using an external 'Animation' class to handle all animations in a project. I would like to register event listeners to listen for tween completion - how do I go about this?
function in Animation class:
Code:
public function SlideOut(target, tx){ var slideTween: TweenMax = new TweenMax(target,.5,{x: tx,y:0,ease:Back.easeIn}); }
[Code].....
Obviously, mySlide.addEventListener(Event.COMPLETE, transitionComplete) doesn't work. I've tried including the name of the instance of tween too but no dice. I could write my own event within the animation class and dispatch it via another function but there must be a more elegant solution?
my movieclip button was working perfectly as a motion tween. Can you use shape tweens as movie clip buttons? I just made that change, and kept my code:
I am working on to slide a movieclip across the stage.The movie clip is five times the width of the stage and I am using the Tween Class to move it across the stage when a button is pressed.The interaction I want is that when the button is pressed the movie clip moves a certain amount.If the button is pressed again it moves further.The script I have come up with though is taking the movieclip back to the original position of the movieclip and then moving it as opposed to moving it from the position it reached after the first button click.I have tried a few things but nothing is working.The script I am using at present is:[code]
I need an externally loaded mc (a listener) to execute a tween when another movie clip (a broadcaster) is pressed. So, when you press on mc1, mc2 executes a function. Sounds so simple. And I feel I almost cracked it. Now, I know the theory behind broadcasters and listeners, but my code simply doesn't work. I must be dumb since I couldn't figure it out from the senocular's tut on broadcasters and listeners.
To try to illustrate the problem more: listeners are a couple of arrows, left and right. They are movie clip buttons that work on the rewind principle. There's an externally loaded mc at the stage that executes its intro tween (nothing special), and when it stops I want it to start listening to the arrows. So, when on(release) on the arrow occurs, externally loaded mc executes it's outro tween, and at the end calls for the next externally loaded mc on the stage.
Now, to add another question; I have 6 externally loaded clips, called by the arrows. When the first and the last one are on the stage, I'd like to disable the previous, and the next buttons, respectively. I thought I'll just do arrow.enable = false in the first and the last clip.
how can i access event.target outside event listener method.say for example
my_mc.addEventListener(MouseEvent.CLICK, onC); function onC(e:MouseEvent):void { var m:MovieClip = e.target as MovieClip; } trace(m.totalframes);/// not working
now what if i want to get totalframe property of m instance, in short for every movieClip clicked.
I have these buttons in a movie clip and I would like to have only one event listener for the parent, using event.target to point to the children. I have also tried event.currentTarget, and it didn't work.here is the code that works:
i've not tried to do anything odd with eventListeners up until now. i have a movieclip with multiple frames that i use AS to attach a textfield to it. problem is i have a eventlistener for when the mouse rollsover the movieclip to go to frame 3 of the movieclip.
[Code]...
what's causing the textfield to suddenly take precedence and how do i stop it. when i trace the evt.target - it is my movieclip.
I'm doing a project that makes a movieclip draggable in different droptarget movieclip. When it is dragged in the 1st target an animation is triggered and so as the rest of the droptargets.Here's my initial code that does'nt work:
My stage has about 25 buttons on it. Each button when pressed to tweens the background to some random x/y coordinates and then loads an external swf file.This is all working, but the timing is off. How can I wait for the initial background tween to end before I make the loader call to the .swf file.Currently each button's behavior is called on the MouseEvent.CLICK event which calls a function that knows its unique filename.swf. I know you can add the MOTION_FINISH even to the tween event but then I would have to call a new function and lose track of the button that initially called it.
Its day 3 of learning AS3 for me. I cant seem to target a movieclip within a movieclip. I code with all my actions on the first frame of the root timeline and would like to continue this practice. But when I target the clip from the root my function wont run.
Here is my example:
Code: wheel_mc.spinBackward_mc.buttonMode = true; wheel_mc.spinForward_mc.addEventListener(MouseEvent.CLICK, spinForward); function spinForward(event:MouseEvent):void {
[code]....
Basically it wont gotoAndPlay("fadeIn") and I'm not sure why. So my question so I can move on in my AS3 learning is how to I target a movieclip with another movieclip, or is there another more proper way to do what I'm trying to achieve.
I have some buttons working great on my main timeline using this code on the actual timeline[code]...
So I know I need to make Revlon_mc into another movieclip (so I can do the actual animation inside this movie clip and move it easily around the main timeline) but I'm not what the code would be (something to do with parent perhaps??) and would I still keep the code on the main timeline or would it sit within the new moviclip just created?
I have some drop targets that work, but I also have a movie clip that can be turn on over the main timeline. All this clip is, is some low alpha colors for a viewing effect. Since it's above the drop target though it doesn't want to work. Is there a way to make it associate with the droptarget underneath, or a way to make the
I've been able to find how to load external .swf's into a target but how do I load a regular MovieClip from my Library? Can you do that with loadMovie?
I am trying to coding a part of a program which is creating different listener for the same object by using a for, but the problem is that the result for all of them is the same, In the following you can find my code:
for( var i:int=0;i<10;i++){ var obj = new MyClass(); obj.y = i*30;
[code]...
My goal of writing the code above is, by clicking on the first obj, the program writes 0 in output, by clicking on second one, writes 1 and so on, but this code give me 10 for all the objects.I should add that no matter there is an obj or not in myOtherMovieClip area, by clicking in that area, I got the same value.