There are ways to do it but it's tricky. Here's an example on my blog :
http://www.sebleedelisle.com/?p=18 You need to convert the text to a bitmap first, then you can do perspective distortions using the triangles method described here : http://www.sebleedelisle.com/?page_id=7 We wrote our own code for it but if you want to save time, you can use Sandy's excellent DistordImage class. :-) http://sandy.media-box.net/blog/distordimage-the-way-to-distord-bitmaps-by-code.html hope this helps! Seb On 24/10/06, slangeberg <[EMAIL PROTECTED]> wrote:
Not in (solely) flash, as far as I know or have ever seen. We created a Java class that takes the parameters (font, text, style) and performs the distortions on actual letter outlines, using Font objects. This was set up as a webservice (coldfusion instantiates java object) that returns coordinates for flash to draw out, at runtime. Here's a section of that code, to give an idea (sorry, closed-source!): private java.awt.Shape transform( int layout, String text, String font ) { j_Font = new java.awt.Font(font, java.awt.Font.PLAIN, FONT_SIZE); // FontRenderContext needed to create a GlyphVector object FontRenderContext frc = new FontRenderContext(null,true,true); // Create a GlyphVector object to get an outline of the text string GlyphVector gv = j_Font.createGlyphVector(frc, text); int length = gv.getNumGlyphs(); //Get the number of characters for(int i = 0; i < length; i++) { java.awt.Shape glyph = gv.getGlyphOutline(i); //Transform single glyph to Shape double glyphWidth = glyph.getBounds().getWidth(); //Get single glyph width prior to rotation theta = (accGlyphWidth/gvWidth) * totalRotationDistance; //Set rotation by points accGlyphWidth = accGlyphWidth + glyphWidth; //Add up distance traveled thus far Point2D p = gv.getGlyphPosition(i); AffineTransform at = new AffineTransform(); at.translate(-p.getX(), -p.getY()); . . . } . . . } As you can see, most of the transformations were accomplised using AffineTransform to the glyphs stored in 'gv'. Hope that gives you an idea of how this was done..! Scott On 10/23/06, Marc Hoffman <[EMAIL PROTECTED]> wrote: > > I need to dynamically distort user input text to fill a limited set > of shapes. For example, the user might type in "WINNERS" and select a > shape like the Arc d' Triomphe (flat-topped arch), and the tops of > all the letters would be flat but the bottoms would be curved. This > is more than just putting text on a curve -- it requires actually > distorting the individual letters. Nike has something similar to this > (but not exactly) on their custom uniform builder. See > http://www.niketeam.com/v2/new/Builders/Baseball/check_flash5.asp and > move through the steps until you reach the "Select Name Style," after > which you'll see the effect I'm after. Somehow they are able to skew > the letters, though they're not actually distorting any straight > lines into a curve, and all the letters keep the same height. > > Anyone know of something like this? Especially Flash 7-compliant? > > Thanks. > > Marc Hoffman > > > _______________________________________________ > Flashcoders@chattyfig.figleaf.com > To change your subscription options or search the archive: > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > > Brought to you by Fig Leaf Software > Premier Authorized Adobe Consulting and Training > http://www.figleaf.com > http://training.figleaf.com > -- : : ) Scott _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com
_______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com