ActionScript 3.0 :: Copying A Rotated Bitmap Into A Bigger Bitmap?
May 9, 2011
I have a bitmap which has several frames (packed along the horizontal axis). In order to render them I copy it to the backbuffer (larger bitmap) as follows:
Actionscript Code:
public override function copyToBackBuffer(db:BitmapData):void{ if (active) var drawRect:Rectangle = new Rectangle((currentFrame-1) * frameWidth, 0, frameWidth,
I am playing around with an old Zelda: Link's Awakening tile set, and was trying to make an application that will display the current selected tile.
I am well versed in as2 but have never had need for the bitmap classes until now. I have found examples of the copyPixel() function that work but could not get it to work in my code.
I have attached the .fla file I saved it as a CS2 (Flash 8) file. (I use CS3 and/or CS4 depending on which computer that I am currently using. This one is in CS3)
I have a container with masked bitmap in it. The scale and rotation of this container changes at runtime, and I need to draw the masked bitmap but cannot figure out the appropriate matrix calculations to do so.My code works correctly to reflect position, scale, offset for centering without rotation. When rotated, the angle is correct but the positioning is incorrect - I believe because the dimensions change when the rectangle is rotated.how to compensate for this in the positioning - here is some code:
// Adjust the transformation matrix to account for the position of the container var tMatrix:Matrix = _imgContainer.transform.matrix; //Offset for container
When rotating a bitmap with actionscript, the edges are jagged and not properly anti-aliased. How do you force anti-aliasing of the bitmap ? this.stage.quality = StageQuality.BEST; // Tried this, but seems useless var imgFromLib = new imgFromLib (); imgFromLib.rotation = 30;
I'm cutting my teeth in actionscript 3 on a game that has a character running through a world. So, I have set up my Hit Testing by using the bitmap data hit test method, since I figured my world is going to be destructible - it'd be nice to update the level and then redraw it and have the character interact with the new change. (That works beautifully) I am however; a bit confused as to how I have my hit Testing set up. I've been messing around with it, and it works for now - but I'm not sure why.. currently, I have a character set up by using a class I built and using a series of animations I created. So, this character has a walking and falling animation, etc. This is a movie clip.
Then there's a bitmap 'emptyBitmap' with bitmap data created - however; I never really added this as a child to the character. This is sized to the dimensions of my character. My level is created as a movielip, then it's drawn to a bitmap - when the level movieclip is changed, the bitmap redraws, and that's how this updates.
I know the topic of "duplicating" movieclips is a hot issue with the new virtual machine. Luckily, I understand the implications. I only am [currently] interested in duplicating a Bitmap. See, I load an image from an URL using 'flash.display.Loader.load', which is a non-blocking operation in Flash Player.However,I may use multiple copies of the loaded image (which is reported to be a Bitmap, naturally) in the display list at the same time.Hence, I naturally do not want to load the image from an URL every time, because I don't want to wait for a non-blocking call to complete. Nor do I need to - I mean one copy is already loaded, so it should be possible to just "duplicate" it, right?
My idea is to do use the bitmapData property of a Bitmap and pass it to the constructor of a new Bitmap object. I have not tried the following in action, but I want to hear whether any of you did and if the following would not work, what would:
Code:
var original_bitmap: Bitmap; var copy_of_original_bitmap: Bitmap = new Bitmap(original_bitmap.bitmapData);
LiveDocs mention that the BitmapData being passed to a Bitmap constructor is "being referenced", which to me might suggest it cannot be used twice? There is also the BitmapData::clone() method, which I am not sure is applicable here or not.I know this is a lot of talk instead of just trying this out, but I test so much Flash Player code daily just to see "what works" (which should be documented instead by Adobe),
If I have a BitmapData that's already been drawn onto a Sprite. Is there a way to redraw the BitmapData onto a Sprites Graphics object without having to invoke beginBitmapFill and passing in the same BitmapData?
I'm working on a game, and to keep performance good, instead of addChild'ing 50 new sprites to the stage every second, I decided to have each player draw to their own bitmap, and then to the 'master' bitmap. This introduces an issue though: the second player would override all data the first player has put into to bitmap...My basic debugging proof of concept:
In pure AS3, I have a pixelbender and a large bitmap. The pixelbender is configurable with a distance parameter to affect only a small area of the bitmap. The problem is that the pixelbender is executing over the whole bitmap. What would be the best way to update only the effected region of the bitmap? Given this config:
Is there a way to write a bitmap font right into the bitmap being desplayed? Mabey better worded: myBitmap.draw(image, t) draws a picture is there a way to draw text? I'm stuck even if its just a work around in some way I would like to know... (the current work around i have in my head is writing it in a movieclip turning that into bitmap data and drawing it... esentially creating a prototype answering my question... but a built in way would be easier probably).
In AS3, I am loading a png from a zip file (nochump's zip library through ByteArray to Loader). The png can be up to 45k pixels wide but only 120 tall. This creates a problem in flash, as images can only be ~8000 pixels wide. A possible solution would be to split the images into 6 columns somehow. This would probably need to be done in the ByteArray state, because the limitation is in Bitmap and Loader.
I'm using Sandy to animate some objects in 3D. What I currently do to images which are EXPORTED in the library, I want to do to some bitmaps that I create using the DRAW technique. But it wont work :-(
CODE FOR 'CREATED BITMAP' : ActionScript Code: var bData:BitmapData = new BitmapData(myObject.width,myObject.height); bData.draw(mask5);
[Code]....
Sandy doesn't seem to treat the 'created' bitmap the same as those that are exported from the library.
I haven't worked very much with bitmap manipulation and I need to create an app that can find a bitmap (or a pattern of pixels really) in another bitmap.Are there other methods of doing it besides iterating through the pixels and using getPixel()?I'm of course looking for the most effective solution.
I'm trying to break a movieclip into pixels and then move each pixel independently, but am having a hard time wrapping my brain around the code.
Right now I have a MC on the stage with an image in it. I'm able to go through each pixel, copy them one at a time then add a tween like this:
Code:
function copyPixels() { var rect:Rectangle = new Rectangle(300, 400, 1, 1); var bytes:ByteArray = bmd1.getPixels(rect); var bmd3:BitmapData = new BitmapData(1,1, true, 0xFF000000);
[Code]...
But that doesn't really give the effect I want. I want the whole image visible then have one pixel at a time fly off. How do I do this? Do I copy the entire image to a ByteArray then address each element in the array?
I use flash CS5 on my mac and I would like to use this font. Would it be possible to turn of the anti aliasing of the font for better legibility and crisper edges when programming.
I've a circle that I want to attach an image to. The trouble is I want to centre it right where I want on the shape. When I select type=bitmap and import the gif though it is 'wallpapered' over shape automatically like a pattern and obviously this doesn't line up with the image properly. How do I get the shape and image to align (both shape and image are identical in size) in cs3?
Okay, I know this is a stupid question but, if you bring in a jpg or png image and either convert it to a graphic or a movie clip, or just leave it as an image, is there a way to distort the image other than scaling, rotating and skewing it. For example, I want to change the perspective of an image the way I do in photoshop.Let's say the image is a house, in photoshop, you can take the house and make it look like a trapezoid shape, you know, wider at the bottom than at the top Is there a way to do this using flash tools? Envelope distorting, if you break the image apart doesn't really work.
I have a variable called pasteData:Bitmap I want to send it to a PHP script on my website (the .swf will be on the same page) but I have no idea how to do this.
I've got an image that I need to programatically add to the stage. In Flash CS4 I did an Import to Library, Export for ActionScript, gave it a name 'myphoto', then inside of a custom class that extends Sprite, I do this:
var bmd:BitMapData = new myphoto(100,200); var myphotoBitMap:BitMap = new BitMap(bmd); addChild(myphotoBitMap);
It shows up on the stage much larger than 100 x 200. I tried
but that gets ignored, the image is still far too large.
I tried resizing after the Added and AddedToStage events, thinking maybe my resizing commands were not working because the image was still being processed in some way, but this doesn't work either.
How to set a bitmap as a button so that i can apply button mode and mouse-event stuff on it, without adding the bitmap to a Movie Clip? var bmpFull=new Bitmap(event.currentTarget.content.bitmapData); bmpFull.smoothing=true; bmpFull.name="photo"; bmpFull.alpha=0; //fullMC.buttonMode=true; fullMC.addChild(bmpFull);
Why would bitmap outperform vector?My Flash is for a large Kiosk, with rich media requirements and must function accurately as a counter. I want to keep everything vector for scalability. When I did a simple FPS test, I noticed my Bitmap version performed perfectly, and the all vector file was noticeably slower.
- only text and bitmap perform well, not vector - background and clouds OK, but more layers slow it down
I wonder if there is a function in ActionScript that can let me trace a bitmap file on the fly though scripting: something like myimg.TraceBitmap(), instead of having me to open a *.fla and work it there.
I have added a bitmap in movieclip using attachBitmap in my Flash Actionscript 2 project. Now i am having trouble to remove bitmap that is created once. If anyone can give idea how can i do this.
So I'm designing a game to learn more about AS3, and I hope I could get some hints on a few issues that's come up.I thought I'd add new questions here as they arise, starting with this one.Using AS3 code only (not the flash IDE, I'm just using flashdevelop), how do I:Add two Bitmap objects together? My case is I have a playing card with a standard face side bitmap, and a specific icon bitmap to represent the individual card. I want to somehow turn them into the same Bitmap object for further use. Is there some sort of graphic context to concatenate?
I made a big grid (2000x2000) and it gets pretty laggy. If my grid was a bitmap it wouldn't lag but I don't have photoshop and don't wanna remake my grid. So is there a way to convert the grid i made in flash to bitmap?
I have a swf I'd like to make a minor change to. Basically I need to change one bitmap, I've tried decompiling it but then it fails to recompile. Is there anyway to hack into a swf file and just change a bitmap?