ActionScript 3.0 :: MouseEvent Triggered Twice When Click On The Container Sprite
Sep 14, 2009
[Code]....
At the moment when I click on the continer sprite, both mouse events are bringing triggered, from the stage and the container sprite. How can I make it so I only get the object I'm clicking on and not the stage as well??
Here, my loader instance name is: myLoader. When I click on the dynamically loaded image, I need to place a small red rectangle at that particular pixel position on the image.For creating a small rectangle, I am using following code:
I have several stage event handlers to enable mouseovers over several dynamically generated moviecilps on the stage that then change their alpha to indicate the mouse is over that particular mc... fairly trivial (mcOver handler). Additionally, I also want to know what MC is clicked, so I update a public variable (public var activemc:Number) with the ID of the dynamic movieclip when the mouse is over it (using a hitTest to check, which is why the EventListener is added to stage and not to the MC), which is checked in the mcClicked handler:This is in the constructor:
However, the mouseover behaviour (alpha 0 when over, alpha 1 when out) stops working as soon as I click on any movieclip on the stage, and the mcClicked ID checking (below) stops working completely. I don't know if this is to do with focus:
private function mcClicked(event:MouseEvent):void { myTextField.text = String(activemc); // activemc is a public var:Number with the movieclip //ID }
I then tried adding the event handler for the stage mouse_move again and this gets the mouseover working again but only for 1 more click, after which it stops again:
private function mcClicked(event:MouseEvent):void { myTextField.text = String(activemc); // activemc is a public var:Number with the movieclip //ID stage.addEventListener(MouseEvent.MOUSE_MOVE, mcOver);
to call a function that uses gotoAndPlay to send the playback head to a certain animation on the timeline.
function doStuff(evt:Event):void { gotoAndPlay("popped"); }
Should be so simple. But the first frame of the "popped' animation, often the first 2, do not display. (when testing the compiled app, even the first 3-4 frames often do not display)Without the mouse event listener, using gotoAndPlay("popped"); to move the playback head to this animation from another spot in the timeline works just fine, so that's why I suspect the mouse event is involved in the bug.using
trace(currentFrame);
in the function after gotoAndPlay, does trace the correct first frame number of the animation, but this frame is not displayed, the animation just starts with the 2nd frame, or 3rd..or sometimes 4th.
I'd like to know what is the difference between MouseEvent.CLICK & MouseEvent.MOUSE_DOWN. Because when i use MouseEvent.MOUSE_DOWN for a button to set full-screen view its doesn't work, instead of this MouseEvent.CLICK works. So what was the reason.
I'm making a button for the first time, and I wanted to use a full click to drive it. However, when I use addEventListener(MouseEvent.CLICK, onClickHandler); nothing happens when I click on it. When I use (with the rest of the code being identical) addEventListener(MouseEvent. MOUSE_ down, onClickHandler); it works like a charm.
I have a MOUSE_DOWN handler that creates a CLICK event listener on a child object. Naturally, as soon as you release the mouse button, if you happen to be over the child object, the CLICK event fires.I was disappointed to discover that event.stopImmediatePropagation doesn't interrupt the CLICK event from registering the MOUSE_DOWN as part of its detection cycle. It makes sense that it doesn't but still... disappointing.A MouseEvent.CLICK consists of detecting a MOUSE_DOWN on the object and then if it's followed by a MOUSE_UP without leaving the object, he event fires. I had hoped that by cancelling the MOUSE_DOWN event, it would clear that out of the CLICK buffer, but no such potatoes, alas.This could all be handled with a flag and a couple more MOUSE_UP and MOUSE_DOWN handlers, but dang, smacks of effort
i've created a bitmap with data and placed it into a sprite so to receive mouse events. however, i'm struggling with reading the BitmapData within the sprite.
I added a movieclip and named "bot_mc" in another movieclip. Then, In Action panel, I use bot_mc.addEventListener(MouseEvent.DOWN, xxxx). However, when I drag and drop the container movieclip on the main stage and compile. There is no error occurs but the MouseEvent doesn't work.
On clicking the Search Icon , a search bar will be visible (ON). If user click anywhere on the stage the search bar will be NO visible(OFF) OR user click on ICON again the search bar will be OFF. But it Stage click is triggered without clicking Code: searchIcon.addEventListener(MouseEvent.CLICK, showSearch); var srchBox:Boolean = true; function showSearch(event:MouseEvent):void { if(srchBox) { srch.visible = true; [Code] ..... As I click on ICON , stage Icon triggerd, and search bar > OFF
Am I missing something or it is just flash? Well I have a PlayerVideo which extends Sprite and have 3 children:1. flash.media.Video2. flash.display.Sprite as PlayPause button3. flash.display.Sprite as MuteUnmute buttonThe thing is that when I have video attached to PlayerVideo, button mouse events are not working, when not Sprite buttons are working okHave anybody ever had something similar ? Mybee some workaround?I have tried wrap with MovieClips and Sprites, but it is the same effect,
I am trying to get an image object from one sprite container and adding it to another sprite container. But when I use GetChildAt for this, it will remove the object from the parent sprite and place it inside the other.
I know this might seem like such an easy issue and I can't understand why I cant figure it out but none the less I can't and I've just about given up. Here's the issue:
I have a sprite container which is supposed to hold a bunch of thumbnails to videos. I am able to populate the container with all the videos and the whole works but obviously if I add a bunch of videos its going to exceed the size of the flash document so I need to add a UIScrollBar (which I did) now the scrollbars target is set to the container but isnt allowing me to scroll and if im correct this is because the container doesnt have a set height. So Im trying to set the height of this container but the second I try setting the height or even width all my thumbnails I used to be able to see are gone! It's as if the size is being set to 0 when its not I've even tried to set it to a specified size just to test and nothing.
I have stuck a bitmap into a display object container (Sprite). On a given mouse event (i.e. mouse click), I would like to display the x and y coordinates of the bitmap. However, I've realized upon clicking on the bitmap, the event is only recognizing the higher level Sprite container. I suspect this could be attributed to the simple fact that bitmaps are not InteractiveObjects.If it's I have attached the code. I am loading a master image and cloning it to produce a thumbnail image (bitmap). Mouse events with the container holding the master image recognize the image itself while the container holding the thumbnail only recognizes the Sprite container.
Code: var ldr1:Loader=new Loader(); var url1:URLRequest=new URLRequest("PhotoGallery0/picture0.jpg");
Is there any reason why a MouseEvent.CLICK would affect only 1 of 5 items, whereas a MouseEvent.ROLL_OVER and MouseEvent.ROLL_OUT affect 5 of 5 items when each event listener is applied exactly the same way?For some reason, of the 5 images I've imported, only the last image is able to be clicked and have click actions applied, yet it is able to receive the ROLL_OVER and ROLL_OUT messages. So that leaves me thoroughly confused.
Here is the code I'm using, I'd greatly appreciate your help ---
I am trying to get an image object from one sprite container and adding it to another sprite container. But when I use GetChildAt for this, it will remove the object from the parent sprite and place it inside the other.
Is there any reason why a MouseEvent.CLICK would affect only 1 of 5 items, whereas a MouseEvent.ROLL_OVER and MouseEvent.ROLL_OUT affect 5 of 5 items when each event listener is applied exactly the same way? For some reason, of the 5 images I've imported, only the last image is able to be clicked and have click actions applied, yet it is able to receive the ROLL_OVER and ROLL_OUT messages. So that leaves me thoroughly confused.
I am trying to add a simple "getURL" type of functionality to a movieclip so that when it is clicked on, the user is taken to a url. i have tried 3 or 4 different ways to do this that all work when i test the movie clip in flash. However, when i embed the swf in a webpage, the click function does not work.I created a function:
Code: function gotoPage(event:MouseEvent):void { var targetURL:URLRequest = new URLRequest('http://www.metteradvertising.com/marketing-help.html'); navigateToURL(targetURL); }
and I'm calling it this way ("Bmeasure" is the movieclip name):
I am using an event listener for both rollOut and rollOver to a button, on roll over it populates a text field, roll out clears the field, however I would like on click to populate the field and leave it persistant untill another roll over event happens, curently the roll_out event takes priority and when I move my mouse it clears the field, regardless of click.
what is the best way to cancel the roll_out event?
In my project I have 14 buttons which are added by adding the background image their in. So I have a var bg which i addChild(bg) thus also adding 14 buttons.
their listeners are set to Mouse.event CLICK, and they work fine unless i add a custom cursor then their dont work any more.
import flash.events.MouseEvent; import flash.events.Event; var mouseWheel_mc:MouseWheel_mc = new MouseWheel_mc(); var over:Boolean=true; addChild(mouseWheel_mc);
[Code]...
there is a MovieClip named mouseWheel_mc which is being called at runtime from the library with 30 frames in it, sequential animation frames.I would like the MouseWheel motion to play these frames forward or backward depending on which direction the mousewheel is being pulled or pushed.
Everything works just fine, but the problem is that the event won't start until you actually click in the SWF window (inside). I thought I could remedy that by using an Event.INIT or Event.ACTIVATE call but neither of those remedy the situation.
How can I get the event to fire once the SWF is in the browser without having to first click within the SWF?
is it not possible to have both CLICK and DOUBLE_CLICK on the same display object? i'm trying to have both for the stage where double clicking the stage adds a new object and clicking once on the stage deselects a selected object.
it appears that DOUBLE_CLICK will execute both itself as well as the first CLICK functions in the path toward DOUBLE CLICK (mouse down, mouse up, click, mouse down, mouse up, double click).in other languages i've programmed with there was a built-in timers that set the two apart. is this not available in AS3?
UPDATE:here's some code. essentially what i would like is have one or the other, not both with double click
When I listen to mouse click event on the stage, it seems it's not always responding to my mouse click event. what I have is:
stage.addEventListener(MouseEvent.CLICK, Test); function Test(event:MouseEvent):void { trace("test"); }
I usually have to click a few times randomly on the stage to get the trace statement. I thought when I add this event listener to the stage, it should respond to any mouse click within the swf area, no?