ActionScript 3.0 :: Mouse Event / Menu Object - Adding And Removing Child
Apr 7, 2009
I'm having an issue with MOUSE_OUT triggering before MOUSE_OVER has a chance. I have a global mouse listener class that listens to every mouse event and sends the object involved a message telling it when a mouse event has happened. When a Menu object is opened it adds a bunch of children and when it's closed it removes them all. The problem comes when moving the mouse from the Menu to the Children, Menu receives a MOUSE_OUT event and closes before the Child receives a MOUSE_OVER.
What is the best way to make a menu with items that can be bought ( a.k.a shop ), bought items are invisible and there are about 20 items or so. What's the better approach than adding mouse event listeners to all 20 items?
I have 4 separate photogalleries, they are all swfs called by buttons with UI loaders attached. The problem is when one is called the loader remains on the stage I need to be able to remove any loader on stage BEFORE calling another page weather its a photogallery or not.Easiest explanation is how I used to do it in AS2 example 2 btns /2 load separate swfs into level1 on each btn I would have
unLoadMovie(1) LoadMovie (xxx.swf) 1
I need to do the same thing in AS3 Also, do I need to use separate loaders or can I use one loader and instance names? Below is the code I have now (btns are in two areas)
main timeline btns (all btns except photogallaries) stop(); home_btn.addEventListener(MouseEvent.CLICK, onHomeClick);
I understand that the major difference between AS2 and AS3 is that in AS3 you have to put all your script in a separate layer, and unlike AS2 you can't add them to buttons or movie clips themselves on their respective layers.
I'm doing a project for school where I'm required to make a flash portfolio.
I have Five buttons, and right now, two of those buttons goes to a frame to display a picture. However, I've made the other buttons dynamic, and they call other swf files to show an image gallery, a game and another image viewer.
What I have a problem with is when I click the first dynamic button, and the swf if added to the parent movie clip, it does not leave the stage when another dynamic button is clicked.
So what I have is all the SWFs loaded on top of each other.
writing a code that will remove child for each button when ANY other button is clicked.
here is the code I have:
stop(); btn3.addEventListener(MouseEvent.CLICK, buttonClick); function buttonClick(event:MouseEvent):void{ gotoAndStop(3);
However, either I'm declaring my variables at the wrong bit/way or there is another problem, as I have been able to add the child I want to from the display list (sidepoint: is it right to call the display list everything in the library on stage at runtime plus those things you have exported for actionscript usage??!)...but when I want to remove it at the next cuepoint nothing happens. I feel this is a basic principle that is alluding me here.
Code: vid.addEventListener(MetadataEvent.CUE_POINT, cueText); function cueText(e:MetadataEvent): void{
I'm trying to do something that I'm not sure if it's possible. I have to add or remove multiple listeners that will trigger the same three methods (onComplete, onError and showProgress). I was trying to do something like this:
[Code]...
Is there anyway to solve this? It seems that after passing through the addListeners method, the loader instance gets lost.
ive made a flash website containing 5 pages all accessed via flash buttonson one of the page ive tried loading a external swf file and then added event listeners to each of the buttons so when a new page is selected the swf file doesnt continue to play in the background on the other pagesthis works, however when i then try to change page again this error is displayed:ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.at flash.display:isplayObjectContainer/removeChild()atValleyViewingWebsite_fla::MainTimeline/btnClick()below is the code im using:
var Xpos:Number = 110; var Ypos:Number = 170; var swf:MovieClip;
I'm trying to build a small game to try and get into ActionScript. This is my first real attempt at ActionScript.Currently I have an Enemy superclass and an Enemy_One class that extends that superclass.When an enemy has moved off screen I want to remove it from the frame. Here's the errors I'm getting:
Code: TypeError: Error #1009: Cannot access a property or method of a null object reference. at Enemy/checkHitPlayer() at Enemy/loop() Enemy.as
I'm adding and removing stage event listeners I am relatively new to AS 3 and have been building a liquid layout site unfortunately I do not have a strong grasp of classes and have been doing all of my scripting on the main timeline with encapsulated script within MC's.
basically I am calling on the same functions over and over and those are mostly resize functions which I have added StageEventListeners on the appropriate frames to listen for resize events on that stage now as of now I have literally dozens of these scattered about the site. when testing my site things are running fairly smoothly however I keep getting error messages in my output window that go a little something like this.
I have written this little script, as i want to remove some of the text fields that are currently contained within the Display Objec, however it does not like to see the TextField as a varaible name. How would i convert the object from an array to become a textfield that can be removed, after being added through addChild()
This is the script
var delayHeading:Number = 1500;var repeatHeading:int = 1;var setShow:Timer = new Timer(delayHeading, repeatHeading);setShow.start();setShow.addEventListener(TimerEvent.TIMER_COMPLETE, maybeLater);
Basically I am dynamically calling product buttons, which on rollover invoke a child of a dropdown, which in turn invokes children which are squares filled with colour.What I need is for these squares to be clickable which will then colour something else using the colourMatrixFilter (I'll probably start another post for this problem at a later date).For some reason though adding the Square as a child to it's rightful parent - the dropdown makes the listeners completely useless. Add to the stage and the listeners work. I can't work out why either and have done loads of searching.[code] also if someone could show me in the right direction of pulling the XMLdata for the squares (which will be a name attribute).
I've created a drop down list and populated it with dynamic buttons. (I made a DropDown_btn class with a dynamic text field in it and then filled the button text from an xml file). On rollover I tint the button blue and then set the tint back to black on rollout. When you click on the button I'd like it to stay blue until a different button is clicked.
...and then I need to addEventListeners back to any button that doesn't have them and set that button back to black. I could do this by looping through an array of the buttons but I can't figure out how to access them as objects.
I also gave them each a property of "buttonValue" when I loaded them so I can access event.currentTarget.buttonValue (which in this case is a number from 1-5) but once again I can't figure out how I might leverage this information.
I want to make a button with the function, adding and removing display objects. I have a button named solutions. I wrote the basic code for adding the external swf file and test the movie. When I click the button at first time, it loads the external swf file. However, when I click the button at 2nd time, it runs the external swf file again. I can't figure out how to write the code to tell the button not to load the file again when the file is already loaded.
I have several objects on the stage and a MouseOver on any of these will add a menu popup child and tween it from off the stage. A MouseOut will tween the menu away and remove the menu with removeChild. Heres the bug: If I mouse out and then quickly mouse over the same object while the menu is tweening away before it has been removed, it doesn't add the menu again, and then on the next mouse out, it tries to remove the child menu, which isn't currently a child because it was just removed, and
I get the error: TypeError: Error #2007: Parameter child must be non-null. at flash.display:isplayObjectContainer/removeChild() at menucaller/tweenOffTimerEnd() at flash.utils::Timer/_timerDispatch() at flash.utils::Timer/tick()
Is there a way I can use an if statement to make sure that the menu is a child of the parent before removing it?
having trouble removing loaded child object b4 loading a new one i can load a child object with this script if button is pressed:
[Code]...
but having difficulty unloading child object when just that mc_char.btn_darkangel button is pressed. Cause otherwise it just adds another instance then another and another and the different instances kinda pile ontop of each other my question is how can i incorporate removeChild script so that mc_char.btn_darkangel doesn't just pile instances of image ontop of each other
In document class action script file I add a movie clip to stage using
Code: public var square:Square square = new Square addChild(square)
So it adds square to stage.Then after sometime I want it to be removed. I call a function "removeSquare" also located in document class. It executes the following code. And it removes the square from stage visualy.
Code: trace("proff that it's executed") removeChild(square) square = null
Then of course I want to add a square to stage again, using code I written at top of the post. And remove it again, and so on..But game is lagging more and more and more. So I guess that the square is not properly removed. If you need more details about my code feel free to say, I just written that since I really doesn't know what else should be important.
I want to listen for a custom event dispatched from the document class in a custom subclass. For example, let's say in the document class I have:
ActionScript Code:[code]....
So that the subclass will trace 'Event from document class received' when the 'customEvent' event from the document class is listened by the eventlistener. However, the output is only 'customEvent dispatched', meaning it wasn't heard in the subclass.
I'm exercising scripting and struggling with adding a child to a object when the creation of the child is wrapped in this function
function makeBox():void {var box:Shape = new Shape;box.graphics.beginFill(0x66FF00);box.graphics.lineStyle(5, 0x6600CC);box.graphics.drawRect(mouseX, mouseY, 50, 50);addChild(box);}
Now I want to add the above shape as a child to this object
var Clip:MovieClip = new MovieClip;addChild(Clip);
if the first code was not a finction I have no problem to add the child by Clip.addChild(box); but I cant figure out how to use it if it is as a function.
I am programming a "build a tower" game. After removing the event listener from the first movieclip, flash won't add the event listener to the by as3 to the stage attached new movieclip.
I have an element which listens for the MOUSE_DOWN, MOUSE_OVER, and MOUSE_OUT; in that there is a child which listens for MOUSE_UP, MOUSE_OVER, and MOUSE_OUT. The issue is that although OVER and OUT seem to work together (And I like how that is) I need it that if the child is clicked, that the parenet doesn't recieve it. (Right now they both recieve them all, and I only want OVER and OUT to be recieved by both)
I want the child of an object to be completely ignored by the mouse, including the parent's mouse event. For the sake of example, let's say I have an instance of a green rectangle movieclip called Green. Green has a mouse click event that traces "Green clicked." I also have an instance of a movie clip Blue that is sitting over Green. Naturally when I click Blue, I don't fire Green's trace, unless I say "Blue.mouseEnabled = false". I want Blue to have an event of its own, tracing "Blue clicked", so I do not set this property. Now, let's say Blue's MC contains an instance of another MC, a red circle (conveniently named "Red"). However, Red is just a part of Blue that is only meant for show. Red needs to be associated with Blue, but I don't want Red to prevent my interaction with Green.
Neither "Blue.mouseChildren = false" nor "Blue.Red.mouseEnabled = false" will prevent Red from firing Blue's mouse event.
regarding adding multiple childs to an array these childs are added using timer after a time interval.actually there two classes and child of both classes are added to stage one through timer as i described and other through keyboard event. now is it possible to do this if yes than how?? and is it possible to apply hittest object between these two array.
I have a game here, and I would like to add event handlers to my buttons to change the time. I know how to do all this, I'm just having troubling actually adding the event listeners to my buttons in my .as file. I have a button named "btnEasy" with the Linkage as "btnEasy" as well.I am getting this error: "1061: Call to a possibly undefined method AddEventListener through a reference with a static type Class".[code]
I'd like to animate a button when I put the mouse over it. I use mouse_over or roll_over events, ok. But what if I hide the button when I click it and then I show it again later without moving the mouse? The mouse stays over the button, but the button does not animate, as there is no out/over event: I have to move the mouse out and over again to see the animation.
How can I detect the mouse standing on a button without the out/over event?
I want to make a static function that I can use in all the custom classes.It should be some kill(); function that would remove the object from the stage as well as removing its event listeners. I made it in Document class, and it didn't work. Here's the code:
ActionScript Code: public static function kill(e:DisplayObject) {[code].....
I am new to Flash and trying to create something that may be simple, but am getting tripped up on.My issue is I have a navigation bar with text. When I mouseover one of the links, I would like a "pop-up" menu to appear. And from there, a CLICK event on them would bring me to a main-timeline frame.
How I went about to test this was I created a rectangle on the first frame of the main timeline, I converted that to a button. On the fifth frame of the main timeline I named the frame. Going into the button now, on the 'OVER' keyframe in its' timeline, I inserted more rectangles to form the pop-up menu. Now, I then converted the first rectangle to a movieclip that I want to on a CLICK goTo the 5th frame of the main timeline.
When I use the usual AS3 code in the actions panel of the movieclip with a basic CICK event, this error appears;
1120: Access of undefined property 'name of movie clip that links to fifth frame'.
I have a parent sprite containing a child named controlBar, whose visibility is initially set to false. When the parent sprite is moused over, controlBar's visibility is set to true, and when the parent sprite is moused out, controlBar's visibility is set to false again, like so:[code]This works fine when mousing over and out of the parent sprite, but then when I mouse over the controlBar, the parent sprite dispatches the MOUSE_OUT and MOUSE_OVER events again, which quickly sets controlBar's visibility to false and then true, and occasionally causes controlBar to flicker. This is exacerbated when mousing around in controlBar, because it contains four spaced-apart buttons, and the parent sprite dispatches MOUSE_OUT and MOUSE_OVER events when mousing from one button to another.What's a simple way to stop the parent sprite from dispatching a MOUSE_OUT event when mousing over its child controlBar?