ActionScript 3.0 :: Parent .swf Listen For An Event In A Child .swf?
Mar 3, 2010Can a parent .swf listen for an event in a child .swf?
View 3 RepliesCan a parent .swf listen for an event in a child .swf?
View 3 RepliesI 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.
To make my point clear, here is the code:
Code:
package
{
import flash.display.*;
import flash.events.*;
[Code].....
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:
[Code]...
Can a parent just listen for a specific event coming from ANY of its children?
View 2 RepliesI 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:
test01.abtn.addEventListener(MouseEvent.ROLL_OVER, mouseHandler);
test01.bbtn.addEventListener(MouseEvent.ROLL_OVER, mouseHandler);
test01.cbtn.addEventListener(MouseEvent.ROLL_OVER, mouseHandler);[code]....
It is only targeting the movie clip, not the buttons inside the movie clip.
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.
View 10 Repliesi 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).
View 5 RepliesI 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 a child swf that dispatches as custom event:
dispatchEvent(new ModuleUpdateEvent(ModuleUpdateEvent.UPDATE_STRING, topicName));
My parent swf is listening for that event.
override protected function moduleLoaded(event:Event):void
{
_laoderInfo = event.target as LoaderInfo;
_laoderInfo.content.addEventListener(ModuleUpdateEvent.UPDATE_STRING, onUpdateFromModule);
}
When I trace/debug out the _laoderInfo.content it clearly says it is the child swf that was loaded in. however my listner function never fires.
private function onUpdateFromModule(event:ModuleUpdateEvent):void
{
trace("
[Code].....
I'm still getting confused with the whole event dispatching feature...all I need to do is fire a single event from a child swf to it's parent in as2..
View 0 RepliesI 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()
[code].....
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)
View 0 Replieswould like to receive an event(Dispatchd in Parent swf) in Child SWF, the bold italic text represents the piece of coding i
//in PARENT SWF i have -----------------------------
dispatchEvent(new Event("CloseDoors"))
// in Child SWF --------------------------------
[code].....
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 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.
View 3 RepliesI 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.
[Code]...
I have a .swf file (parent) that loads another .swf (child) file.
I would like to dispatch an event to the child (.swf) file, but I am not sure how to do this in a way that avoids coupling?
I am wondering how to correctly reference child/parent movie clips when creating event handlers? I have a button within a movie clip, which is within a movie clip.This is what my handler looks like right now:
this.DropMenus.DMSeats.ButtonSeats.addEventListener("click",SeatsOver) ;
The button instance name is ButtonSeats Problem is, I get this:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
Also, if I were to move the vent listener directly into the movie clip where the button is located, how could I reference the parent/ parent timeline(the main timeline)? Am I correct to understand that .this refers only to the current clip?
I have created event listeners for a particular movieclip.Insidet this movieclip there is so many objects.When ever I click on the parent movieclip the event listener calls the function for the child object. I had tried removeEventLIstener()
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
var info:MovieClip=new MovieClip();
info.graphics.beginFill(0x000000,0.35);
[Code] .....
I want to delete mc's parent
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?
View 1 RepliesI 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]
View 1 Replies[code]All clips are squared.Ok, on the PlayerPlane, there are little soldiers, which have hotkeys. The effect I'm trying to create is I want to position the GameStage so that the currently selected soldier appears in the center of the GameClicker clip.The GameStage is movable by the player (to scan other areas of the map)by holding the CTRL key, so it's easy to kinda lose track of where your players are.I have tried using localTo Global and globalToLocal techniques, but I think I'm lost on the actual math of getting the GameStage to move the correct distance so that the selected soldier is centered to the GameClicker.[code]
View 2 RepliesI am trying to learn JavaScript and I am wondering whether JavaScript has a event listener just like ActionScript's ENTER_FRAME. Basically, I want this event listener to listen "all the time" not just wait for any particular instance (mouse click, keyboard event) of event.
View 3 RepliesI 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 got a "preloader" that creates an movieclip and loads an SWF. Now in the loaded SWF i want a close button to go back to the "preloader". The preloader isn't an actuall preloader but some sort of mainclip.Now i tried this:removeChild(MovieClip(e.currentTarget).parent.pare nt.parent)But i get error:ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.at flash.display::DisplayObjectContainer/removeChild()at MethodInfo-6()
View 1 RepliesI have a movieClip, which in turn has a nested movieClip. I need each of these to have thier own onRollOver events, the parent movieClip is OK, but the event never fires for the nested movieClip. My code goes something like this:
[Code]...
is output when mcOne is rolled over, as it should, but nothing is output when mcTwo is moused over.
I know the difference between the two, but I never felt the need to use the bubbling feature. If I want to listen to an event from a deeply nested children, I always use the capture phase. Could someone explain to me why I should rather use bubbling, its advantages, and maybe show me a situation in which bubbling would be the only solution?
View 5 Repliesif I add a clip to the stage as a child and remove the parent and set the parent equal to null, does the child get collected and removed from memory? What if the child has an image loaded into it as its child?
In my application I'm loading a series of png images as overlays that can be tinted for customizing in this app. When I trace my memory, the basic app idles at 64,000 k. The exact second I load those overlay images it goes up to 205,000k. If I remove those clips and "clear" the stage I should go back down to 64,000 k if everything is removed and collected correctly, right? It's not, it's hanging at 215,000 k. Are my images being cached and that is the reason for the memory staying up? If so, how do I prevent that. Or upon removing the parent of the image how can I un-cache the image.
If a user switches between models and loads several different items then the application actually crashes the Flash environment because of too much memory usage. It also does the same to browsers.
I have a parent swf which loads many child swfs (though only one is displayed at a time). My intention was to use the loaded SWFs document class to retrieve an array of objects to be assigned a tab index, combine this with the parent's own array of objects and apply sequential tab indices to them all. But what happens is actually that the parent's objects are assigned an index, but the external swf is unaffected. In fact, the external swf retains its automatic tab indexing, when I would expect that having set a value for InteractiveObject.tabIndex, automatic tab indexing would be disabled.
I've seen similar tales elsewhere. Most posts I've read are wanting to load an external swf, give it focus and loop through those objects, then close the swf and return to looping through the parent. However I would like loop through all objects as one. including manipulating the focus manager(s), and basically fiddling with every tab-related property I know.