ActionScript 3.0 :: Dispatching A Custom Event From Parent Swf To Child Swf
May 8, 2010
I'm building an all flash site, where one .swf acts as the parent, and other external child .swf's are loaded in using .xml. The "Child.swf's" are a mixture of timeline animations, and coded swf's, and the problem I'm having is that they immediately start playing as soon as they are loaded. I've not been able to find any straightforward "child.start() or child.stop()" solutions, so I assume it's more involved than that.
I thought it might be a good idea if I could dispatch events from the parent swf that will set them going. I'm using the sharedEvents method to communicate in the reverse direction (child to parent), but I don't believe it can be used from parent to child (Please correct me if I'm wrong!) I know I could go to each child and put "stop();" in the first frame, but how do I start it again? I would also prefer it if not all the child .swf's started immediately, but to wait until others have completed their routines. Again the way I see it is to dispatch an event from the parent .swf as soon as I'm ready to set them going.
I have a dialogBox with 2 buttons - ok_btn and cancel_btn. The code is in a Class - testDialog.
There are 2 issues:When any of the 2 buttons clicked, they dismiss the dialogBox without sending any alert to the parent (main time-line).How to trap the clicked buttonId in the parent.I have just an idea of the solution as dispatching an event in the child and listen for that event in the parent. But, unfortunately, I don't know how to go about it.
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?
I have a simple 2 class game Im working on. It has a document class (BubbleBuster.AS) and a Bubble class (Bubble.AS). In the doc class I made a container sprite called bubbleContainer. I add bubbles (instances of Bubble.AS) to the bubbleContainer. When the game is over I fire a custom event in the bubbleContainer from the doc class like so:Code:bubbleContainer.dispatchEvent(new Event("gameOver"));Now I want to listen for this event in the Bubble children so I can kill tweens and remove things. So in the Bubble.AS I have:Code:parent.addEventListener("gameOver", gameOver);this compiles fine. But as soon the 1st Bubble is added to bubbleContainer I get this error (and no bubble appears):TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Bubble/init() at Bubble() at BubbleBuster/addBubble()
I have two swfs for a project, I had both of them to dispatch events to each other. Parent loads child and is listening for the compete load event. Once that event is dispatched to the child - the child dispatches a start event back to the parent. I got this working by copying the ModelEvent(my custom event) in each of the flash builder actionscript projects in the exact file structure ( i think i was cheating it there, since )
It broke when I put the swf on separate domains, so I'm thinking I'm missing something to share the custom event class between two swfs.
I have two swf file, A.swf and B.swf, each with its Document Class: B.swf is loaded in a MovieClip of A.swf. When loaded, B.swf creates an instance of CSDragger (it is a library object with its class extending MovieClip) and sets an ID property of this instance to a certain value. When this dragger is dropped by the user upon a MovieClip it sends a custom event containing the value of ID too. The custom event regularly reaches B.swf but never reaches A.swf. Aside from refactoring the CSDragger class (eg moving its handleDrop method in the B.swf document class), is there any way for the event to reach A.swf? I know I can intercept it and dispatch another event, but I was looking for a different solution (if any).[code]
I have a custom Flex 4.5 component (to be used in a List) -
Game.mxml (represents a clickable playing table in a card game): <?xml version="1.0" encoding="utf-8"?> <s:ItemRenderer [code].......
But I never see the "game clicked: " trace. Does anybody please know why? I'm probably missing something minor, because I can see the "Clicked: 8946" trace.
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 have movieclip which contains child movieclip. when child movie clip finish to play i want to run a function in a parent movieclip. so I made a custom event dispatcher in the first frame of the child movieclip:
I got a question about event dispatching in flex.my goal is to get a custom event loaded up with some data and than bubble up to the eventlistener. my main application has and AMF service request inside which calls an service class. that class is supposed to dispatch an event when the AMF service request returns a result or fault and the main application is listening for that event.so inside my mainapp i add and listener like this:[code] However, this event never reaches the main application. Looking closely to it with the debugger, i found out that when the event is dispatched the listeners property of it is set to null.
I'm trying to dispatch a custom event from a custom ItemRenderer. This is my custom event package events { import customClass.Product; import flash.events.Event; public class CopyProductEvent extends Event { public static const COPY_PRODUCT:String = "COPY_PRODUCT"; public var picked:Prodotti; [Code] ..... The event from the function is dispatched correctly... I can't intercept it..
So I am able to dispatch the event from one class and trace out that the custom event was dispatched, but where I am having trouble is listening for that event in another class.
I have a repeater component with custom event. My repeater components fires custom event holding data. My need is to dispatch event so other repeater components can access data from dispatching component.
I think this is a pretty simply problem but I do not seem to be able to pull it off. Basically I have a parent class A, and a child class B.Class A instantiates class B with addChild.There is a shared object which is being updated from a java server (red5) that has an event listener attached to it in class A.I have a function in class A which will pass certain, specific updates from this shared object to class B.The problem occurs is that when class B is instantiated, the event listener from class A doesn't work anymore. I have not removed the event listener from A.?
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:
In a nutshell I have a custom event that I am dispatching from one class that is not getting picked up by the other class even though i have added the appropriate addEventListener calls on its constructor.Here's how the classes are laid out:
The NetworkManager class extends the MovieClip class as does the LoginScreen and Application classes as well.Now within the oLoginScreen class I dispatch the ValidateCredentialsEvent by calling it this way:
ActionScript Code: dispatchEvent (new ValidateCredentialsEvent(ValidateCredentialsEvent.VALIDATE_CREDENTIALS, oLoginData, true, false));
Then when I debug the code, I can step through and see that the ValidateCredentialsEvent is being generated but it is never picked up by the oNetworkManager class whatsoever.Is this occuring because the NetworkManager and LoginScreen classes are children of the Application class and because of this can't capture events raised by one another without using the Application class as the intermediary to redispatch these events? My whole idea here was to create a generic network managing object that could be called from anywhere within the application, by any object, using custom events.
I got a Parent Sprite, let's name it SpriteP, which holds inside it two other Sprites. Sprite1 and Sprite2.[code]Sprite2 is a rectangle. When I rotate it, of course, the height of its parent, SpriteP, GROWS. But I would expect that height to go back to what it should be when I'm removing Sprite2!And it does! If I remove Sprite2 while NOT being rotated, the height of the parent drops back to normal, 200.
i am slightly confused about the parent and child relationship. lets assume we have several different instances, what would be difference of adding them all as children of the stage and creating a parent-child hierarchy between them(other than the access path).
I got a Parent Sprite, let's name it SpriteP, which holds inside it two other Sprites. Sprite1 and Sprite2.
When Sprite2 is NOT rotated:
Code: trace(SpriteP.width + ' ' + SpriteP.height); //100 250. SpriteP.removeChild(Sprite2) trace(SpriteP.width + ' ' + SpriteP.height); //100 200. -> works, 200 is good. When Sprite2 is rotated at 90:
[Code].....
And it does! If I remove Sprite2 while NOT being rotated, the height of the parent drops back to normal, 200. But if I rotate Sprite2, the Parent won't update its bounds.
I'm trying to place an event on a child and not the parent but it doesn't seem to trigger the event. Example. Code: parent.child.buttonMode = true; parent.child.addEventListener(MouseEvent.ROLL_OVER, onMouseOver ); private function onMouseOver(evt : MouseEvent) : void{ trace("child = "+evt.target.name); } The above event is not getting fired.
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 have got a custom event set up (see below), but when I listen for the event in my main class, and it gets dispatched from the child class, it never gets captured.
I have a sprite A which has a child, sprite B.Sprite B has a variable, instance of class C which only extends EventDispatcherIn class C, I dispatch a custom Event. The eventlistener in sprite B reacts on the event.The same eventlistener in class A doesn't respond.If I dispatch the same custom event in the eventhandler in class / sprite B, this event is seen in class / sprite A.Is there a difference in events going through the displaylist and those who are from an EventDispatcher?
I have a movieclip(parentMC) which consists of several other movieclips(childMCs). Each childMC can trigger an event, and each event performs a different function. I want to check from my parentMC whenever there is an event triggered by any of its child.