Flash :: Forward MouseEvent In Transparent Bitmap To Underlying MovieClip
Mar 24, 2011
So I'm Bitmaping some heavy stuff to try bring down the [pre-render] and [render] which is quite high according to FlashBuilder's profiling. I thought this was going well until I realised that as soon as you change a MovieClip to a Bitmap, you lose the pixel based accuracy of the mouse move events (Over, Out, Move...), all your left with is the entire bounding box of the Bitmap, something which is less than desirable. I've got a game where many Bitmapped assets would be on top of each other in a scene, on the stage, arranged in various ways and need to have that pixel accuracy moving between each one and have exhausted my efforts as to how to achieve the same mouse move results with the Bitmapped guys as normal.
This, [URL], is a FLA which shows this operation, and you can see how it works here, [URL]. When it loads up, both items on stage are drawn Shapes, encapsulated in MovieClips, both that get a glow, if you hover over them. If you click the stage at all, the purple guy gets turned into a Bitmap and now, his 'hit area', when it comes to MouseEvents is his whole bounding box and you can only get through to the back green item at the edge slivers.
I'm also tracing the pixel which the mouse is over, so I can clearly tell when the mouse is over a transparent area, it's 0, but how can I tell the event to forward itself on down the chain to the green MovieClip?
Below is how it's now pretty much working for me,
var bitmap:Bitmap = this['bitmap'];
var shouldMouseOver:Boolean = bitmap.bitmapData.getPixel(event.localX - bitmap.x, event.localY - bitmap.y);
if(shouldMouseOver)
[Code].....
I shut off mouseEnabled for my item, when I know it's wrong, then I search for another item that properly fits the bill and if there is one, send an Event to that and break. If that one's also wrong, it'll do the same again, but each time taking themselves out of the loop.
This does work exactly how I want it to, but I'd always prefer to keep things like globalToLocal and looping, and reading from arrays for not frequently updated methods like listeners to MOUSE_MOVE. Is there a more efficient way to do this?
View 2 Replies
Similar Posts:
Jul 22, 2010
I've googled around and seen this topic at a million places but I just don't get the solution![url]...
Like in the image above. My red movieclip is dragable when mouse_down and dropped when mouse_up. At the same time I want the underlying Blue MC to get it's mouseEvents but if the Red MC is overlapping it, it won't react. What do I do to make both active?
View 8 Replies
Feb 13, 2011
how to convert text into a bitmap or a mocieclip with transparent background. i could convert the text into bitmap but it has got a white background..
View 1 Replies
Jul 9, 2009
I have a MovieClip (call it base_mc) which is under a bunch of other MovieClips (call them subclips). The MovieClips on top are all mouseEnabled with MOUSE_OVER, CLICK, etc, event handlers. I want to capture the event of MOUSE_OVER (or ROLL_OVER) on the base_mc as well. Any time I am over one of the subclips I am also over the base_mc clip. How can I capture this event?
View 2 Replies
Jul 4, 2010
If anyone has come across this problem or is educated enough so that you may come up with a working solution then please post here. Okay so at the moment I have 2 swfs. One swf is the main swf, which contains a class called Avatar. This class extends Sprite and has 1 child, which is a bitmap image.
What I do is load the child swf into the main swf, create an object of the Avatar class and pass the Avatar object down to the child swf. The child swf takes this object and adds it to a Sprite object as one of it's children. Then I add an event listener for MouseEvent.CLICK to the Sprite object (the one containing the Avatar sprite) that is in the child swf.
Now when I go to click the Avatar bitmap inside the Sprite inside the child swf. The mouse click event does not fire.
View 2 Replies
Oct 5, 2011
I have a bitmap with many colors on it. When the user clicks each color needs to trigger a different method. However, I have no idea how to check the color value of the selected bitmap. I can create a new sprite and check the value of that fine through bitmapdata.getpixel() but when I need to actually check the actual bitmap I cannot get it to work.
View 2 Replies
Oct 27, 2011
when you go forward, car is blurring/stuttering/lagging
[URL]
View 0 Replies
Sep 18, 2008
I am importing some graphics on the fly, and want to be ableto drag them around the stage, which all works great. My issue isthat if I add a large element, like a border around the edge of thestage, this covers up all the other items so that clicking on themis not possible. I can see them, but when I click, the large itemgets the event, even though visually, it is transparent. There arethings I could do if I was doing all the development of thegraphics in the IDE, but these items load at runtime, so it has towork with bitmap
View 1 Replies
May 31, 2010
Can I check if a pixel is transparent or not in a bitmap?
I want to count the nr of transparent pixels and nontransparent pixels.
View 0 Replies
Sep 17, 2010
So I have a BitmapData object that's 400x400, and is mostly transparent with a small area (up to 50x50) of color somewhere inside. That's drawn to a bitmap, and now I somehow need to generate a Sprite that is only the dimensions of the small colored area, and sits in the same place on the screen.The size and position of the colored area is variable, and the operation to create the new Sprite must be near-instantaneous, so no lengthy pixel comparison exercises.
View 2 Replies
Nov 6, 2010
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:
//stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);
//stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mcOver);[code]....
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);
View 1 Replies
May 29, 2009
i am loading a background bitmap into a sprite. after that i make this sprite draggable. now i would like to have a copy of this sprite where just the area with the non-transparent parts of the bitmap react to the click.
i know that i can determine if a pixel is transparent with the getPixel32() method, but it seems to be overkill to anylyze every pixel... or is it not?
View 9 Replies
Jul 29, 2008
i want to make all white pixels in my Bitmap transparent. i found the treshold-method and try to use it:
Code:
var pt:Point = new Point(0, 0);
var rect:Rectangle = new Rectangle(0, 0, 2000, 2000);
var threshold:uint = 0x00FFFFFF; // all white Pixels
[Code]....
View 3 Replies
Mar 5, 2008
what i want to do is to preload some images, then multipy them on my scene ( the files are transparent png containing clouds ) the problem is that when i copy the bitmap data to create a new cloud, i loose transparency, and i can't get WHY here's my code
[Code]...
View 6 Replies
May 2, 2009
I am trying to use the bitmapData.setPixels method to set certain pixels in the bitmap transparent.But no matter what I do, it always seems to set the pixel(s) black (non-transparent).Here is my code:
[AS]
bmpd = new ImageFromLibrary(0, 0);
bmpd.setPixel(0, 0, 0x00000000);
[/AS]
why its not setting the pixel(s) transparent?
View 4 Replies
Dec 20, 2011
What I have is a bitmap as render cache for a sprite, and there're many of them present on the stage. I expected that they would react like sprites with mouse-click event, but they didn't. They're like rectangles all around, matter what the original sprite look like, And I tried put bitmap cache into sprite container and use sprite's hitArea property like [code]...
View 1 Replies
Jun 25, 2009
We have a Flash swf object embedded in an html page. When the user sees the page it's just a small button, but on the rollover state the area of the object expands and covers more of the page. This is how it was designed. The problem seems to be that the maximum size of the swf object, even though it's transparent and "invisible" unless the user rolls over the button, blocks out all the underlying html so you can't access any of the links. It's as if the object is covering that part of the page even when it's not expanded. I've tried every publish setting I can imagine to compensate and make the item truly transparent so the "hidden" underlying links will still be clickable, but just can't get it.
View 1 Replies
Nov 29, 2010
I'm using jQuery Autocomplete just as in this example: [URL] The problem is, the area where you see the Result box in that example - that's where my flash object is. So, when the autocomplete dropdown appears, most of the text is concealed by the flash object (which I can't move). How can I make the autocomplete text appear over the flash object (concealing its view rather than vice versa)?
View 4 Replies
Mar 18, 2011
Is there a way to make part of a movieclip transparent? Using actionscript that is.I want to create 'holes' in a movieclip so I can see through it.If needed I guess I can change the movieclip into a sprite if that makes it easier, but I am unfamiliar with flash so I need to learn the proper way to do such a thing.
View 3 Replies
Jul 26, 2011
how to apply an glow filter option to an transparent MovieClip.
View 4 Replies
Feb 1, 2012
This work:
var a:BitmapData = new BitmapData(640,480);
var b:Bitmap = new Bitmap(a);
a.draw(movieClip);
[Code].....
How can I draw in my Bitmap just the visible part of a MovieClip that uses mask?
View 1 Replies
Apr 19, 2011
I am developing a Paint Application is AS3. What I am trying is to basically mimick the MS Paint. I am using vector graphics to implement tools like pencil,line,curve and bitmap to implement bucket tool,spray and eraser. But I faced a problem. While its possible to draw bitmap over vector its not possible to draw vector over bitmap if every drawing is in the same layer.
So the idea that I have is to make it into two layers
Top layer where the vector drawing is done.
In the bottom layer layer after each vector drawing on MOUSE_UP a bitmap copy of the top layer is made and kept on the bottom layer. Keep the top layer fully transparent so that bottom layer is always visible.
Things like flood-fill(bucket tool), spray and eraser will be directly applied to bottom layer.
After each vector is drawn on MOUSE_UP the top layer will be cleared but everything will be visible because it has been re created in the bottom layer and the top layer is full transparent.
My questions are: Is there any flaw in my logic. How to make a bitmap copy of the movie clip on top. I tried but maybe I am stupid it does not work. The name of the MovieClips are topLayer_mc and bottomLayer_mc. What is need to have is to have a function to create a bitmap copy of topLayer_mc on every MOUSE_UP of pencil,line and add it to bottomLayer_mc. I mean create a bitmap copy of topLayer_mc on every MOUSE_UP of pencil, line and add it to bottomLayer_mc. A function will do.
View 1 Replies
Nov 14, 2011
But now the tracks are objects in an array, that will grow larger and larger (and slow down the game over time). How can I paint them on the level bitmap? And how to reload the bitmap when you restart?Have searched for an answer for days but have not found one.I know how to combine a bitmap and add it to the stage, but not how to replace it in the movie clip object:
var newLevel:BitmapData = new BitmapData(grassLevel.width, grassLevel.height);
var newDebree:BitmapData = new BitmapData(debree.width, debree.height);
newLevel.draw(grassLevel);
[code]......
View 1 Replies
Jan 4, 2012
This is my first question here :D, first sorry about my english. My question is basically how can i save a flash Movie Clip to FLV. The Movie Clip is generated by users and it has various sounds and animations and i need to save an FLV to send it to Youtbue. What have I tried: I found some question here about using an Alchemy Lib that I am using to grab the Movie Clip frame to frame and save it to Bitmap. The Alchemy Lib converts those frames to FLV like a charm and supports saving chunks of sound using ByteArray.
In this situation my Problem is, how can i grab the sound of Movie Clip to send it to Alchemy Lib? Iīve tried using:SoundMixer.computeSpectrum(sndData, false, 2); Witch returns me a byteArray in sndData variable but is useless since itīs used for render Audio Wave forms on screen. Thougth aboud using Sound.extract(); but i believe the sound class is used only for one MP3 sound and I need to grab the mixed sounds generated by Movie Clip.
[Code]...
View 1 Replies
Apr 6, 2010
What are the Advantages and Disadvantages over the Bitmap and MovieClip in Flash.
View 1 Replies
Sep 7, 2011
I've got a code, which caches loaded resources (both images and swfs) and saves its bytes to flash SharedObject:
var cache:SharedObject = SharedObject.getLocal('dataCache');
cache.data[url] = (loader.contentLoaderInfo as LoaderInfo).bytes;
When there's a query to load new resource, the code checks if the resource is in cache and then loads its bytes:
var loader:FlexLoader = new FlexLoader();
// handlers skipped
var lc:LoaderContext = new LoaderContext();
lc.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
[Code]......
View 2 Replies
Oct 8, 2011
I have a MovieClip inside a stage that is mostly(not accurately) centered to the middle of the stage.
When I try to save the MovieClip into a bitmap in order to upload it to facebook, I either get a cropped image or a white image(blank). Here is the code for generating the bitmap:
var source:BitmapData = new BitmapData(board.width, board.height);
source.draw(board);
var bitmap:Bitmap = new Bitmap(source);
The result I am getting is the yellow area in the following image:
[Code]...
View 2 Replies
Oct 21, 2010
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.
View 3 Replies
Nov 6, 2010
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.
View 6 Replies
Oct 4, 2009
I have th following code below. When the monster is clicked I would like to remove it but the MouseEvent.Click event never fires? I'm using flash cs4.
import fl.motion.Animator;import fl.motion.MotionEvent;var this_xml:XML = <Motion duration="30" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*"> <source> [code].......
View 2 Replies