ActionScript 2.0 :: BitmapData Clear Pixels Or Set Alpha
Feb 26, 2008
What I have setup right now is one movieClip that is being used to be drawn into a BitmapData object. That bitmapData object is being drawn on the enterFrame and I am needing to clear it so it doesnt have the previous enterFrames information still stored in it, then once it is clear draw the current information. Is there a simple way to clear or erase all the pixel information in the BitmapData object?
If there is a way to set the alpha of the pixels I would really like to know how that is done as well. However, I want to change the alpha level of the entire BitmapData object, not just a few pixels.
I've been using BitmapData.copyPixels() to draw graphics onto a canvas (Bitmap).I need to rotate the resulting graphics without the use of draw() because it's vastly slower.How can I rotate the target graphic? I'm assuming that there might be a formula or library that I can use which will first reorganize the pixels that make up a graphic based on an origin (point) and radians.I'm pretty certain that I'm not capable of creating such logic, so if there are any known libraries that do this, that would be awesome.I'd like to achieve something similar to XNA's SpriteBatch.Draw() method, which accepts rotation as its 5th argument.
I'm trying to create a BitmapData object from a movie clip, but I need to also get the pixel data in a layer that has been set as a mask in the authoring environment. All I'm getting is the masked in pixels, but I also need the mask itself, and I'm can't seem to find a way to do it.
I need to create, from a given Bitmap/BitmapData of a PNG file which has transparent and semitransparent pixels, another BitmapData which is a copy of it, but all the pixels (well, the pixels that are not alpha 0% actually) must have a specified grey color value (0xdddddd).
Let say I have a BitmapData with different pixels representing an object, and some black pixels around it that I want to remove.I would like to obtain a new BitmapData, with width and height of the object represented by non-black pixels.For example, let say I have a BitmapData 400x400px, but the object represented by non-black pixels occupies the rect: x=100, y=100, width=200, height=200. I want to get new BitmapData representing that rect, all black pixels should be removed. Of course, i have no coordinates for that rectangle, i need somehow to make difference between a full black bitmapdata and the original one, and construct a new bitmapdata (different width and height).
I have a map (map of a mall, top view) with some colors. I´m removing the part for walking of the map, which has a type of color (say 0xcccccc).
I got all the 0xcccccc color pixels removed (setted to another color), but it seems to remain a bit of gray at the walking part.
The color of that bit it´s close to 0xcccccc. It looks like flash not succeeded while removing the walking part. But instead, leaved some parts (like borders or something) on the bitmapdata.
I´ve tried to remove by script, by picking the colors remained on the bitmap, but the loop doesn´t find these colors.
I have a list of images, and without scanning through each pixel in each image, I want to find out if the image contains transparency (at least one non-opaque pixel).Is there a shortcut to do this (like a property of bitmapData object) rather than looping through the pixels?
Having trouble trying to scroll BitmapData on a half pixel here is my original code
var speed:Number = 1; _bitmapData.copyPixels(_backgroundParallax, _screenRect, _zeroPoint, null, null, true); _backgroundParallax.copyPixels(_backgroundParallax, new Rectangle(0, 0, speed, _backgroundParallax.height), new Point(_backgroundParallax.width-speed,0), null, null, false); _backgroundParallax.scroll( (speed*-1) , 0);
which works until i change the var speed to .5, which is because .scroll method is expecting int's so i replicated what scroll is doing to try and allow .5 pixels
When I publish as a PNG with Alpha there are black pixels that are rendered on the edge of the image near where the text is.If I remove the text from the image the black pixels do not render and the alpha looks as intended.
I am using bitmapData and bitmap classes to render a mouse cursor on the display screen. The bitmapData consists of an area whose colors should be inverted according to the background color. This is a very basic thing which could be observed with text cursor(the vertical line with two small horizontals on top and bottom), when moved over the text area. want to be able to do the same with the pixels in my bitmapData, is there a way to find out the background color effectively and invert the color values? In this process i will be redrawing the whole pixels, is there any other efficient way to do that ?
im trying to draw opaque pixels on a transparent bitmapdata background
heres the ex:
ActionScript Code: //TRANSPARENT BACKGROUND var _pixelColor:uint = 0x9998002E; var _bmpd:BitmapData = new BitmapData(4, 7, true, 0x00333333);
[Code].....
This example paints 2 arrows, the first is using the transparent background, and the second is using an opaque background on the BitmapData.
What I'm trying to achieve is to paint the pixels of the arrow completely opaque on the transparent background. But as you can see, the pixel is at 99% of its opacity (var _pixelColor:uint = 0x9998002E) How can I paint 100% opaque pixels on a transparent BitmapData "canvas"?
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]
I am trying to copy multiple movieclips to one movieclip using BitmapData.
I am trying to clear out the old bitmapdata from the movieclip that I am adding my bitmapdata to. The two movieclips I am copying are different sizes and shapes so I can't just overlap them.
I made a program in Flex that uses the actionscript 3 drawing api. I am drawing on a Canvas and on every mouseUp event I save the bitmapData in an Image component and clear the the Canvas. That works great, but the problem appears if I want to add a background to the paint that was drawn.
Here are the mxml components: Code: <mx:Canvas id="_backgroundColor" width="100%" height="100%" x="0" y="0" /> <mx:Image id="_image" x="0" y="0" mouseEnabled="false" /> <mx:Canvas id="_paper" x="0" y="0" />
And here it is the function I have on the Canvas (_paper) mouseUp Code: private function onSaveModifications(evt:PaperEvents):void{ var bmpData:BitmapData = new BitmapData(this._paper.width,this._paper.height,true,0x00FFFFFF); bmpData.draw(this._paper); this._image.source = new Bitmap(bmpData); this._paper.graphics.clear() }
I want when I set the _background Canvas background color to see it, but I cannot because the Image component(_image) where I save the bitmap is masking it.
This is how I set the background Code: this._background.setStyle("backgroundColor",0xff0000) Do you know how can I make the pixels of the bitmap that weren't drawn to be transparent?
how to grab the transparency (or alpha value) of individual pixels in an embedded or loaded video? We tried copying over a frame of video into a bitmapdata object with transparency enabled. However, even though we can "see through" the video at certain spots (indicating alpha = 0 there), the alpha value comes back as 0xFF for every single pixel in the BitmapData object.Obviously alpha data is being stored inside the embedded video, but how can I actually get that value?
I'm blitting a map onto the screen with tiles.. and the source of these tiles are BitmapData objects.I know you can change the alpha of a bitmap.. but I'm not too sure if it can be done on the BitmapData object itself.I want some tiles to have less alpha than others. Applying the alpha to the Bitmap.. makes everything on the current screen have an alpha.. but I only need one tile of it..
I have a movieclip with an image that has transparency and filters applied to the movieclip.I know I can use "draw" to copy the movieclip to a bitmapdata object, but it doesn't seem to copy the filters and the transparency of the image. How can I copy these so the bitmapdata matches the original movieclip in appearance?
one drawing layer (graphics object with lineTo, etc.)
one png with an alpha channel (supposed to serve only as a mask)
now i want to be able to only draw lines within an area restricted by the png mask.
i am trying like this:
var bitmapData:BitmapData = new BitmapData( 320, 320 ); bitmapData.draw( drawingLayer ); bitmapData.copyChannel( maskBitmapData, new Rectangle( 0, 0, 320, 320 ), new Point( 0, 0 ), BitmapDataChannel.ALPHA, BitmapDataChannel.ALPHA );
now the borders get cut off fine, but i get a black background, since the drawing layer has an alpha between the drawn lines (and it should remain like this) and the mask bitmap has an alpha outside the shape. so naturally the mask's alpha replaces the drawing layer's.
i tried it with merge, copyPixels and also with just setting the mask property on the drawing layer (i set everything to cacheAsBitmap) but to no avail.
[Embed("...")] private const BodyMask:Class; var maskBitmap:Bitmap = new BodyMask();
and assigned them to the mask property of a s:Group element (cacheAsBitmap=true) where the operations on the graphics object occured. i also tried reassigning the mask after each draw operation.
If my title ain't clear enough, I've got two bitmapData sheets with an image, one being the actual image, and the other image having the same structure, but all areas being visible are black, and all transparent areas being completely white. So far I've been playing around with:
I'm looking for the most efficient possible way of drawing an 8 x 4 grid (960x600 total size). Each square of the grid has a variable alpha and the grid is redrawn every enter frame. The problem is my application is doing a lot already and I'm looking for the most efficient way to execute this loop 32 times (possible more in fact) per frame without overloading processor.
Code: private function init():void { var dimensions : Array = [ 0, 0, 960, 600 ]; var gridRaw : Array = [ 8, 4 ]; var stageRect : Rectangle = new Rectangle( Number( dimensions[0] ), Number( dimensions[1] ), Number( dimensions[2] ), Number( dimensions[3] ) ); [Code] .....
I'm under the impression there could be better ways of drawing the shapes straight to BitmapData without using Sprites, or maybe I'm doing something wrong about memory usage as I can see memory going up and down in a cycle.
I am drawing a flash sprite on a BitmapData using its draw() method. This sprite has some nested objects with 0 alpha, yet the draw() method draws them on the bitmap data.
I think it has to do with the color transform I am using, but I have no idea how to change it to achieve the effect I want.
The color transform is the following:
Code: new ColorTransform(1, 1, 1, 1, 255, 255, 255, 255);
I am using these values in order for the Bitmap to have white pixels wherever the object was, and black where there is nothing. The draw() also draws my alpha = 0 objects in white as well.
I have a swf file that loads into my main movie, and within that swf there is a masked image that i would like to scale using zoom in and out buttons and also by using a slider bar.However i cant find any tutorials that will allow me to combine the two.I have used the following code for the buttons. Which seems to work ok but i would like it to be a little smoother. (using speed or some sort of easing??)
I have a movie clip called column1_mc. when I click a button I need to move the movie clip in incremental moves consisting of 30 pixels.
column1_mc._y = 30;
Does not work because that is giving a _y coordinate.For example.I need to make the movie clip jump to _y 300 but make 10x30 pixel incremental jumps. Moving 10 times 30 pixel jumps.
I'm making a side-scrolling game, with a (theoretically) infinite background. I have a block engine that places the blocks on the bitmap canvas. Now here's the catch. I'm using the bitmapData.scroll() function. Now unless I clear the screen each time the character moves, it's going to leave ghost images of the border of the screen, like this picture: zanzlanz. tumblr. com/post/18857712784 If I clear the screen each time, then it generates a lot of lag (because it has to repaint the objects again). I'm a bit lost on how I can scroll without leaving streaks of the side of the screen and without repainting the entire screen.
I'm working on a game whose background has many layers that each scroll at different speeds.
Inside each layer I have a Sprite, I've started using graphics.beginBitmapFill, but what I've found is that the graphics.clear() function doesn't actually clear the contents set by the previous call to graphics.begin.BitmapFill. Each frame, I adjust the matrix to shift the layer as needed. Then, I call graphics.clear() and graphics.beginBitmapFill() with the adjusted matrix. Since my layers have alphas in the bitmap, I can see the contents that was drawn the previous frame.
When I publish the file, I'm getting the following error message in the Output panel:
**Error** Scene=Scene 1, layer=Layer 2, frame=1:Line 7: The class or interface 'BitmapData.loadBitmap' could not be loaded. var plaid:BitmapData.loadBitmap("plaid");
I am trying to use the reflect class from "http://pixelfumes.blogspot.com/2007/03/reflection-class-v3-with-source .html" but I keep getting this error:
ArgumentError: Error #2015: Invalid BitmapData. at flash.display::BitmapData() at Reflect() at Site_fla::GalleryPage_29/loadThumbs() at Site_fla::GalleryPage_29/sortXML()
[Code]...
btw, first I used assigned thumbContainer as the mc argument (outside the loadThumbs() function) and it worked but not exactly what I wanted... because I thought it is supposed to update when the movieclip is animated but it actually didn't... when I use a scroller, only the thumbs that are first loaded to the stage get the reflection..
how to use the bitmapData collision method. Now I'm trying to figure out if there is a way to see at what angle or coordinate of the bitmapData the collision happens? I need it in order to figure the accurate bounce angle after the collision occurs.
I'm currently working on a flash game and I need to know how to addChild a BitmapData or draw a BitmapData to screen. If I can't than how can I give a DisplayObject my BitmapData?