ActionScript 3.0 :: Clear Out Bitmapdata On Different Sized Bitmaps?
Nov 2, 2009
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 has a series of bitmaps which have been broken apart in flash, I want to know if it is possible to go into these bitmaps using their bitmapdata and edit them based on information on the arrays that I get. I.E. I want to delete the transparent pixels each one has.
Obviously I can do this by hand in photoshop or just using the lasso tool, but I have several thousand bitmaps that I have to edit, so I'm hoping theres a way to do this through code.
i've used a Loader and URLRequest to download a .png from the internet and add it to my display list. since it's already a bitmap, does it have built in bitmap data already? or do i have to create the bitmap data myself?also, why does the same trace statement return false in the mouseMoveHandler when it outputs true in the displayImage function?
var imageLoader:Loader = new Loader(); imageLoader.load(new URLRequest("http://somewebsite.com/image.png")); imageLoader.contentLoaderInfo.addEventListener
I want to load .jpg images into flash and store them as BitmapData objects. I've coded the loading of images many many times but I've never tried to store them as BitmapData, I just usually add the Loader to the display list and manipulate the image through its loader.
I feel like this is a very poor approach and so I want to try just saving BitmapData, because on the Model side of things thats really all I need.
Now the only way I have found to extract BitmapData from a loaded JPEG is to load the JPEG and upon completion write:
myBitmapData = Bitmap(loader.content).bitmapData;
First, is there a way to extract the BitmapData without encumbering the code with the Bitmap class? In other words, is there a way to extract that information without involving the Bitmap class - BitmapData while useful for a Bitmap is not dependent on Bitmap so ideally I would never involve Bitmap here.
Also, why is this Bitmap type-casting so widely accepted? loader.content is a DisplayObject and therefore is not necessarily compatible with Bitmap. Further, for all Flash knows we just loaded an SWF and as far as I know you can't typecast that to a Bitmap.
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 working on a simple mosaic generator for a project and have been crashing Flash consistently by trying to add too many bitmaps to a Sprite. I can crash Flash every time with the following:
for(var i:int = 0; i < 10000; i++){ var d:BitmapData = new BitmapData(20,20); addChild(new Bitmap(d)); }
I get a 2015 error - invalid BitmapData.9000 works without issue... 10000 crashes. Problem is I need 10000.Is this a known limitation? I could try using multiple sprites and adding say 5000 to each, but that wouldn't be easy with this project. But if I have to I have to...
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?
I'm trying to figure out the best way to compare a single bitmap against perhaps an array of saved bitmaps to see how close of a match it may be to any one of the bitmaps stored in the array. Right now I'm running a for loop that uses the bitmapData.compare() method to try to compare to see how much of a variance there is but... to be honest I'm at a loss as to how to use the resulting data to do so. Does anyone know of any good method to accomplish what I am trying to do? Forget looking at my code it's a waste of time because simply, it's not working.
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..
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.
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?
I've made a mobile version of my software, with low-res images and such, and I can now fully buffer all my content (including a 360 frame animation which is buffered to memory). Problem is, that everytime I update the view, more memory is used.When I write image = new BitmapData();, does it store the previously created BitmapData's in memory? Do I have to flush the memory somehow before I draw my second picture in BitmapData?Example:
ActionScript Code: // In this example I draw using the same bitmapData several times, also //overwriting the first image. Do I have to somehow delete the data first, to
Does anyone know if it is possible to dynamically add a movie clip to the stage with text and have the size of the movie clip dynamically generated by the amount of text?In other words I am trying to make a word bubble but the amount of text in the bubble will vary in size and I need the bubble to size accordingly. Maybe someone knows of a tutorial online that I can use. My searches have not been successful.
I followed tutorial [URL] on making a gallery with thumbnails. However, each thumbnail has to be of same width....if not the order of the thumbs gets mixed up. I've been trying to alter the thumbnails_fn(k) function, or more precisely this line: target_mc._x = hit_left._x+(target_mc._width+5)*k;
Ok im new here and to Flash programing... so its safe to assume that i know close to zip. I've based it on the "XML and Flash Photo Gallery" tutorial by one of the guys on here. The centering bit i looked at another forums post. I use a MC(bg) and inside that another MC(photo) two buttons "pervious_btn" "next_btn" I load my images via "images.xml" It loads everything and it centers the 1st image(276x184), but it keeps the 1st image coordinates for the rest which is 640x480 and 480x640... thats where the mess comes in. It doesnt center the next image.
I know lightbox is there and easy to use but I dont want to because of the settings you have to set on the Adobe site for it to allow access and all that... besides i really like Flash! Is there a way to perhaps "reset" the MC, or coordinates before loading the next image?
I have an attached movieclip that duplicates boxes vertically. All the boxes are different heights, because I've scripted it to adjust with the amount of xml text contained inside these boxes.
How do I get these boxes to line up right without overlapping eachother?
need to fill a grid with tiles that will be of different sizes,but all multiples of the stage size - something like this:I want to randomize number of tiles placed into the grid without having any tile overlap. It will then place a tile at a random position on the grid, but not in any grid cells that have already been covered by a tile. And...also I want the grid/tiles to be dynamic enough to scale if the stage is resized.
I was wanting to do a quick class that generates an image from another image similar to the way the Killers "Day and Age" album looked like: [URL] The problem I'm running into (mentally, haven't started coding yet) is that I'm not sure how to place all those randomly sized and placed circles on the stage in such a way that they will completely fill it.I have thought of two methods, but both seem inefficient:
1. Use Box2D to create a new area where randomly sized circles drop from the top of the screen and fill the screen. Then, when all circles have settled, just track the size and position of each.
2. Select a random spot on the screen. Create a new circle, and test how big it's maximum diameter can be until it bumps into other circles or reaches a set maximum diameter. If it cannot become larger than the smallest allowed diameter, don't place a circle there, but move on. Repeat until too many tries in a row don't allow you to place any more circles.
what is the as for opening a sized window off a link. for example, clicking an image thumbnail, and it opens larger in a window that fits the picture. with no adress bar, or stuff like that.
center loaded jpegs within an mc.By default I know they load with their topic corner aligned with the orgin of the mc.Is there a way to keep the origin at the center, and have loadmovie align the jpeg center?Or how can I obtain the images dimensions so I can apply the proper x-y transforms to get it where I want?
I am having an issue with using BitmapData.draw(stage). I am getting the following error:
SecurityError: Error #2123: Security sandbox violation: BitmapData.draw: file:///C|/Documents%20and%20Settings/bla...bla...bla.swf cannot access null. No policy files granted access. Here is a portion of my code:
var bd:BitmapData = new BitmapData(2800, 2100); bd.draw(stage);//this is where the error happens All of the files referenced (.xml/.jpg/.swf) are located in the same local folder as the main .swf. How do I get around this error? The main objective is to print the stage using PrintJob(). I am using Flash Professional CS5.5 and publishing to Flash 10.0/10.1. Let me know if I need to supply any more info.
I have a really annoying bug with the Flash player. When I go into fullscreen then an image of the normal-sized flash player flashes up momentarily in the top left-hand corner of the player.It's really ugly and I can't seem to find a quick fix to get round this. The only answers I have found are to use a NetConnection and NetStream classwhich I simply do not have time to do
I need a List that resizes to exactly fit its content, unless that height exceeds its (dynamically sized) parent container. My requirements are as follows:
The component extends List, or at least acts similarly. variableRowHeight and wordWrap both equal to true. The height of the list cannot be less than minHeight (roughly 32px for scrollbar arrows). The height of the list cannot be greater than the height of the parent container .
Note that the parent container can be resized dynamically.
The height of the list should be updated as the size of both the contents and parent container changes.
Live updating would be preferable but not necessary.
There should be no scrollbars if the content height is less than the parent container height (sounds obvious, but I've had trouble with this too).
The trouble is that with variableRowHeight and wordWrap, it's very hard to know the size of the content at any given time. If the parent container's width is reduced, a line wrap may occur in the list which will change the height of the content. I know I can measure the height of the list content using measureHeightOfItems() + viewMetrics.top + viewMetrics.bottom, but when should I calculate that? What events should I listen for? And the thing I've had the most trouble with - when should I calculate it to set the size initially (i.e. just as the content has finished populating)?
So I have created my vdeo player , but Im havin problems handling different sized videos. How to properly scale videos proportionally? I get original width and height from metadata object:
I want to create randomly sized circles which act magnetically to eachother. They should start on random positions and then find the perfect order. They shouldn't overlap. What are the things I have to deal with here?