ActionScript 3.0 :: Textfield Painted Into Bitmapdata Bug ?
Jan 24, 2009
If I create a simple Textfield and place it on the stage, it looks good.If I take the same Textfield, and paint it into a BitmapData (first putting the Textfield into a Sprite so I can paint it), the resulting BitmapData is not the same, pixel for pixel, as the original textfield on the stage.refer to the attached image for a zoomed in view on the differences in the aliasing. What can I do to keep the two pixel-for-pixel identical?
Code:
private static function doTest( stg:Stage ):void
{
var tf:TextField = new TextField();[code]....
having a problem while drawing a complex combinations of TextFields into BitmapData in as3,The problem happens when i change the parent's (x,y) or (width, height) and the drawn object got a bad effect like left blur.[code]
I want to draw text to a bitmapData and allow it to be rotated but rotating the text makes it disappear :(The code I am using resembles something like this :
var tf : TextField = new TextField(); tf.text = "testing"; var mat : Matrix = new Matrix();
I am trying to create a transition where an image looks like it's being painted on screen, much like the brush transition in the link below. [URL]. Can I create something this on a timeline without action script? I also want to maintain the brush stroke and diagonal look when wiping to a new image.
I'm building a simple white board app in ActionScript 3. Most white board or painting apps in ActionScript tend to use an interval, timer, mouseMove event, or enterFrame event to track the mouse position and paint lines or brushes in between the tracked points.
What I'm trying to achieve is the nice smooth painted line that a program like Photoshop can render while painting with the brush tool. In Photoshop, no matter how fast you move the mouse around the canvas, the painted lines always end up with a nice smooth curved edge. In my app, using any of the methods mentioned prior, there is always latency between the function calls that render the brush to the stage. Thus, using any of those techniques can result in a sharp cornered line when moving the mouse very quickly in a circular manner.
This is no surprise to me, I just have no idea how I could achieve a smoother line like Photoshop's brush tool. Mind you, the brushes for my app are mostly based on shapes and do not or cannot use the drawing API to draw continues lines. In other words, graphics.curveTo() is not an option. I am also rendering the Sprites or Shapes generated by the brushes to a BitmapData instance.
I've created a custom uicomponent and whenever the browser or its specific container is resized, a repaint occurs but the contents of the component get drawn again and again and again...So, if I move the container I'll end up with multiple circles drawn on top of each other but offset depending upon where the container is when the repaint occurs.My updateDisplayList code is below.Do I need to do some sort of clear so that it doesn't contiuously getting duplicated like this?
For those of you still with me, I am tasked with making some scrollable content in Flash. Load in a TextFile using LoadURL(), then display it. To get the text, we've written our own class TextFieldExtended, which is basically just there to give the textfile location to the constructor and then have the class do the various steps of getting it and loading it for you.So I needed to get a Scrollbar, which I got hereThe thing is, it works with Sprites.After trying to get it to accept TextFieldExtended, I bumped into a block, since the scrollbar relied heavily on a Sprite property that TextFieldExtended didn't have or could have.
So I tried adding the TextFieldExtended instance to a Sprite instance using addchild.A problem occurs here that I do not know how to handle. It seems that a Rectangle is drawn and the Text is drawn on that. I say this because the scrollbar moves the Rectangle up and down a bit, but the text doesn't scroll, just the Rectangle it is positioned in and the text then moves along with it.My question: can this be fixed, or is does this implementation of scrollbars need a lot of adaptations before this is possible?
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
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.
The title might be a little misleading. Look at my code and I will explain
public static function loadTile(tileDir:String = "empty"):void { if(tileDir != "empty") { tPoint = new Point(0,0); tRect = new Rectangle(0,0,30,30);
[Code]...
I am trying to do tiling with sprites. I want my tiles to be interactive, so that is why I am using the sprite object instead of using regular bitMaps to represent my tiles. You might be wondering why I wouldnt just use graphics.beginBitmapFill(tImage); and graphics.drawRect(0, 0,tWidth ,tHeight ); to pick out the tiles I want to use. Well reason being is because it turns out that drawRect() first and second parameters actually alter the location of where the actual sprite sits at.
So if I set the x and y properties of the sprite to x = 20, and y = 20. then I set my drawRect(20,20). it actually adds an extra 20 pixels to my x and y coords of my sprite. And I know the reason why, I just need to know a better way.
how can i make a movieclip and a textfield to resize to the content of the text in the textfield? I mean, if I have a textfield with 3 letters font name XXX and then the content of the field change, how can i resize te textfield so the text dont autoadjust to the 3 letter space?
Does anyone know, why a textfield may become white when loading text + JPGs into it? Sometimes it happens to me, sometimes not. I haven't figured out why. If you have any clues... The AS I'm using:
I am looking to change the background color of a input textField when the user selects that testfield to start populating it. I have done a bunch of searching and I keep coming up with this type of answer...
Code: myTextField.onSetFocus = Set(evt:Event){ // Change color }
Problems...
1) Is onSetFocus/onKillFocus still available? From what I can tell it is not.
2) I have my text objects encapsulasted in a class so I do not believe I am able to do it like I have been suggested.
I'm using the following to remove a textFeild from the stage I then need to add this textField back to the stage at a later time....i tried using addChild the problem is the text that was in the text field prior to the removal is still in the textfield when i re add it......How do i remove the textfield and replace it with a fresh textfield at a later time?....using msgTa.text =""; is not an option.
I just recently started playing with cs5 and it's new features. I tried to rotate a textfield with the 3D rotation tool, but when you do this, the textfields gets blurry.And it seems like it's not a vector text anymore, because when you zoom in, it still is blurry.Is there a way to prevent that?
i would just like to ask why is the case that when i use embedfonts = true on a textfield, the textfield's text only resizes according to the textfield's height but not the textfield's width. meaning if i make the textfield's height bigger, the text also gets bigger in terms of height, but not width, can't the embedded font maintain aspect ratio according to the textfield height?
I'm only wondering about this because this is not the case when embedfonts= false
Attached is basically a recreation of the problem. What I'm basically trying to do is a tooltip window with 4 frames. Each frame has different textfields but also some the same. Like the "Weapon" frame has textfields called namebox, typebox, levelbox, and damagebox, while the "Armor" frame has namebox, typebox, levelbox, and defensebox.
In the attachment there is a Movieclip called awd on the stage. It has 2 keyframes in it called "Weapon" and "Drop" each with their own textfields but they are both called "box". I have a click event listener that makes awd go to its second frame and outputs the second child in awd, which will be the textfield. The problem is when I click the first time, awd goes to the second frame but it outputs null instead of Object TextField. When I click again it outputs Object TextField. If I trace the number of children it gives me 2. So I don't know how it can be null.
I've got a flash document using AS3. It dynamically reads data from an XML file, and creates a bunch of single line textFields. Could be like this:
<XMLdata> <Line>this is line 1</Line> <Line>this is line 2</Line> <Line>this is line 3</Line> </XMLdata>
So, for each node, it would create a new TextField, and change the textField.y value so that they are "stacked" on top of each other. All this if fine, except that if you hae so many "lines" (or textfields) that the "stack" is taller than the Flash Document size. What I would like to do is have a scroll bar or something so you can scroll the stack of TextFields. Doesnt' even need to be a scroll bar. Maybe an arrow button at the bottom, and when you click on it, it scrolls down. One for up too.
I have a numerical stepper,and a user can click on a textfield, then click the up and down arrows on the stepper to change the font size,i then try and set the focus back to the textfield and put the caret at the end of the textfield, but the stepper keeps focus anyway.Here is the event handler for when the stepper value is changed.Get the textfield's current format, change the size, set the new format, then focus on the textfield and set the caret position, but the caret just stays inside the stepper.
Code: private function handleChangeTextSize(e:Event):void { var tField:TextField = Main.LAST_FOCUSED_OBJECT;[code]....
I've had problems with other components too with the exact same focus issue and the only solution i've ever come up with is to set a timeout for like 100 milliseconds to set the focus back then and it works. another way to do this without the "hack"?
What I have is a dynamicly created row of movieClips. In which TextFields are added with text that's received from an Array. What I would like to be able to do is click on the movieClip that's visible and have the code understand I clicked array[3] for example and it will show the 4th array item in another textfield.
I have two text fields and the user can use a button to underline text in either field. I have a listener on each field that keeps tracks of the last clicked in field.
public function setLastActiveTextField(event:FocusEvent):void { lastTextActiveField=event.currentTarget; trace(lastTextActiveField.name); }
[Code]....
lastActiveTextField is defined as an Object. When the highlight button is hit, it reports the correct the range, but I can't figure out how to send the formatting to the actual textfield without setting up another if (lastActiveTextField.name==field2) control. Also, stage.focus won't work because the object isn't really on the stage, I guess. There has to be a way to refer to the textField object.