Javascript :: Use Of Event Bubbling And Event Capturing?
Jul 21, 2010What is the use of event bubbling and event capturing?
View 3 RepliesWhat is the use of event bubbling and event capturing?
View 3 RepliesIn IE, if flash has focus, and receives a keydown event, it does not appear to bubble the event up through the DOM (I can't capture the event by listening on document, however the same listener can capture key events from html siblings, so I know my listener is working).
However, some other plugins on the page (I am looking at you windows media player) still respond to key events that initiate in flash (and I need to prevent that from happening)! It seems that the key event initiated in flash takes the bubble express highway straight to the top (where the top is whatever is above document in the DOM hierarchy). I have tried terminating the events in as3, and tried different wmodes... neither approach works.
In IE, if flash has focus, and receives a keydown event, it does not appear to bubble the event up through the DOM (I can't capture the event by listening on document, however the same listener can capture key events from html siblings, so I know my listener is working).However, some other plugins on the page (I am looking at you windows media player) still respond to key events that initiate in flash (and I need to prevent that from happening)! It seems that the key event initiated in flash takes the bubble express highway straight to the top (where the top is whatever is above document in the DOM hierarchy).I have tried terminating the events in as3, and tried different wmodes... neither approach worls. Is there something I might have missed?
View 0 RepliesEnvironment:
Windows 7,
Internet Explorer 8,
Flash ActiveX 10.1.53.64,
wmode=transparent
Just wrote a small test page that you can load in IE and Firefox or any other Browser.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
[Code].....
So clicking any colored shape should produce an alert (except for the green one in IE, not sure why but I hope that's off topic and not related to my issue).
Clicking the Flash container in Firefox will work Perfectly fine. You should get alert boxes in this order containing: span, div and body. Flash bubbles the event to the HTML. But this is not happening in IE.
So why is Flash in IE not bubbling events to HTML?
Edit: As mentioned by Andy E this behavior can also bee seen in Google Chrome which to my knowledge is not using ActiveX to embed the flash movie into the page.
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 RepliesI have:
Class my_class
{ public function my_class( an_mc )
{
[code]....
I 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 RepliesWhat is event bubbling in Flex?
View 1 RepliesActually I wanted to know what is bubbling event and how to make use of it. Also, what is the concept of capturing, targeting and bubbling too?
View 2 RepliesI have a movie clip (cover) which covers another movie clip (stuff).I have set up Mouse Over on the Cover movie clip so that when you mouse over it, it tweens off of the Stuff movie clip.Then i have Mouse out set up on the Stuff movie clip so when you mouse out of it, the Cover clip tweens back in..
Now when I mouse over a MC that is inside the Stuff movie clip..it triggers the mouse out for the Stuff movie clip. this is undesired.I need my mouse to be active inside the Stuff movie, so mouseChildren = false doesn't work,because i then can not click on things inside the stuff movie clip.Right now i have managed to work around this by running a loop for each child inside the stuff, adding an event listener and telling the tween to stop on those events,but this won't work for children of those children without looping again.. and the children of those children's children would need looped as well... The question is.. How do I make a child movie clip not trigger the mouse out for it's parent(s)?
I have a content clip that gets replaced by a movieClip from the library every time a button is clicked. Some of the content sections contain video. Within the video is a custom event firing that bubbles up through its parent clips all the way until it gets to the clip that was added to the stage on user click. It never goes beyond the content clip to the stage, where I need the listener. Isn't an event supposed to bubble all the way up to the stage? Why would it ever stop?The code is in 10 different places in 10 different files or else I'd post it.
View 3 RepliesI can't figure out why the event listener callback function isn't being fired when a child object is being clicked. Since the "SelectionPoint" object is a child of this class, shouldn't the listener get notified of the MouseEvent.CLICK event during the capture phase?
Code:
package {
import flash.display.*;
[code]....
I have a MovieClip which contains 4 Buttons:When the user mouses out of the container, it shoulddisappear:this.resolutions.addEventListener(MouseEvent.MOUSE_OUT,this.resolutionsClose);When the user mouses out of any of the 4 Buttons, the event bubbles up to the container. This is not the expected behavior. How do I stop this propagation when none of the 4 Buttons have mouse out handlers?
View 3 RepliesWhat is the difference between event.bubbles to false for any event, And Setting event.stopPropagaion() or stopImmidiatePropagation() while handling event? I am using flex4 with as3.
View 3 Replies"allows child clips to receive events despite the fact that a parent might make use of them as well, something not possible with the normal convention of handling button events where no child movie clip ever receives button events if a parent has any button event handlers defined for it." how to attach an event to an mc called "child_next" within "parent1".
Code:
import com.senocular.events.*
function handleEventMethod(eventObject:ButtonEvent):Void {
// trace event
if (eventObject.type != "onMouseWithin") trace(eventObject.type +"("+this+")");
[code]....
I'm wanting to bubble events between a few custom classes, however, they are not Display Objects.Is there any quick and easy way to do event bubbling, without needing a display list?Or perhaps another way than needing to manually listen for each event that is attached and "relay" it every time it is dispatched?
View 1 RepliesI am having trouble with event bubbling when using the flash video player I've tried several methods to stop the player,before submitting here - but nothing I've tried seems to work The scenraio is: The site loads great - the buttons function correctly When the fourth button is click - it loads a frame with an embeded FLV player (the default vid player Flash uses when importing video into the swf) When the fourth button is click (Cheetah Coloring System)The video starts to play When any other button is clicked The video continues to play The embeded vid clip is named movie1 and i've tried using move1.stop(); but that stops the entire swf how to stop the movie - when another button is clicked?
COde used for the buttons::::
btn1_mc.addEventListener(MouseEvent.MOUSE_DOWN, bhp1DownHandler);function bhp1DownHandler(event:MouseEvent):void {gotoAndStop(15);}
btn2_mc.addEventListener(MouseEvent.MOUSE_DOWN, bhp2DownHandler);function bhp2DownHandler(event:MouseEvent):void {gotoAndStop(16);}
btn3_mc.addEventListener(MouseEvent.MOUSE_DOWN, bhp3DownHandler);function bhp3DownHandler(event:MouseEvent):void {gotoAndStop(17);}
btn4_mc.addEventListener(MouseEvent.MOUSE_DOWN, bhp4DownHandler);function bhp4DownHandler(event:MouseEvent):void {gotoAndStop(18);}
I have a utility class that I use to load images that never gets added to the stage and is extending EventDispatcher, it simply loads the data and spits it back out on request.
I want to add a custom event to track loading progress from outside the class. The events are firing but not (i think) bubbling because they aren't in the display list.
Is there a good way around this? I was thinking: Can I have a non display list object tell a display object to send the custom event for it?
I have searched on the Internet and didn't find any clue on how to do so, any idea ? I don't want flex only flash (my objects are not visual components).
View 3 RepliesI want to dispatch a MouseEvent.CLICK to a DisplayObject manually and make it bubble through all of it's children. The event is handled in the object that I dispatch it to, but does not seem to bubble (even though I specify that it should). Is it not possible to do this?
Code:
_targetObject.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true));
Code:
private function handleClick(event:MouseEvent):void
{
This method is executed, but no children will receive this event.
}
I have a MouseEvent.MOUSE_WHEEL eventlistener setup for a custom scrollbar component that allows the wheel to control the scrolling up or down.Inside the Flash dev environment when I test the flash app it works fine. However, when I test the app inside a web browser ( which has its own vertical scrollbar ) the mouse wheel controls both the scrollbar in my flash app and the scrollbar in the browser.Is there a way to setup the eventlistener on my scrollbar that it prevents the MOUSE_WHEEL event from bubbling up to the browser?
View 3 RepliesI came across this annoying bug in Linux.
consider this code as timeline code:
ActionScript Code:
import flash.utils.getTimer;
import flash.events.KeyboardEvent;
[Code]...
(haven't tested in Mac, I deleted my mac vm as it wasn't accurate)
What is going on is that just after a KEY_DOWN event, a KEY_UP event fires, even though you didn't release the key.
Now as for where this bug is located, I'm not sure. It could be with how flash integrates into the already present keyboard interface of the OS, or it could be the OS's keyboard interface itself.
But see either way, it's something I can't control. I can't change flash player, nor can I change the keyboard interface of the OS (well I can, but what about other users with Linux?).
So what I need is a way around this. To side step this key up event when the key up didn't actually occur. Because this is causing some majour issues with my KeyboardController class.
[edit]
furthermore it makes me wonder what might be going on in Solaris.
I think I'll reinstate my vm's of Solaris and Mac OSX and see.
I created a new CustomEvents object which I want to use to let the main class located in .mxml file to know about an event which had finished it's work in Crop class. However when I dispatch a CustomEvent from Crop class I can not catch it in my main .mxml file's class.
CustomEvents class
Code:
package actions
{
import flash.events.Event;
public class CustomEvents extends Event
[code]....
capturing an event from extended class. i am extending class B from class A. snippet form class A (ButtonControl):
[Code]...
I registered a very simple button event listener in A.mxml:
<mx:Script><![CDATA[
import mx.controls.Alert;
public function Handler():void
[code]....
It works fine when clicking the button everytime.Now I want to have something interesting,that is,I want to capture this buttonClick Event in another mxml file,say B.mxml and do something in B.mxml instead of A.
I am testing timerevent with flex unit. Follwing is the code which i tried ,it always goes to cmdFailed function (Time out function).I am new to flex unit.[code]
View 1 RepliesI'm trying to capture keyboard events with the following code. I'm testing in an external popup flash player in FlashDevelop and it ain't tracing anything. I reckon it might be something to do with keyboard shortcuts in the flash player.
But I can't find where to disable them?
ActionScript Code:
package {
import flash.display.Sprite;
import flash.events.KeyboardEvent;
[Code]....
I have editable grids which are 2-way binded to my model. What I want is to validate my data when user edits any cell before it get updated in model. I have applied my validation at ItemEditEnd handler, but, I want to apply validation in between itemEditBegin and itemEditEnd events.
View 1 RepliesI hava a custom component and it contains a child icon. If I add a mouse-click event listener to both component(click-listener1) and icon(click-listener2), the event dispatched sequence is click-listener2, then click-listener1. I can understand it. But if I add a custom event to component (listener1), and mouse-click event to icon(listener2), when icon is clicked, the component will dispatch the custom event. In my test, the event dispatched sequence is listener1, then listener2. It doesn't match with event-bubbles rule.
In my opinion The custom event is dispatched in listener2, which triggers listener1. Why event flow sequence is not listener2, listener1?
In component.
icon.addEventListener(MouseEvent.CLICK, iconClickHandler);
private function iconClickHandler(event:MouseEvent):void
{
[Code].....
I've been developing a swf with Adobe CS4.My problem is the following:
<a href="#" onclick="jsonp_func();return false" >click</a>
var jsonp_func = function(){
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "http://example.com/api?callback=jsonp_callback";
[Code]...