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
>
>
> _______________________________________________
> [email protected]
> 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
_______________________________________________
[email protected]
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
_______________________________________________
[email protected]
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