0

私はこのような消えゆくスターウォーズタイプのことをやろうとしていますが、プログラム的に.

彼らが行ったことのほとんどは簡単にプログラムできます (モーション トゥイーンを作成します) が、テキストベースのグラフィックもプログラムで生成したいと考えています (たとえば、動的テキスト obj を使用したテキストから)。

問題は、私が見ているように (もちろん、他の方法で見ることもできます)、次のとおりです。動的テキスト オブジェクトから斜めの四角形を取得する方法はありますか? ここで言及されているscale9gridはそれを行いません、私は確信しています。ひし形を取得するために 4 つの点を指定したい (そう呼ばれている場合)。

4

3 に答える 3

2

Flash Player 10 (CS4 または最新の flex SDK が必要) 用にコンパイルしている場合は、テキスト フィールドを 3D で回転させることができます。

text.rotateX = -45;

これには、フォントの埋め込みを使用する必要があり、フィールドの中心に消失点を取得する必要があるなど、さらにいくつかの問題があります。

マゾヒスティックで、垂直方向のエイリアシングを気にしない場合は、10 未満の Flash Player でビットマップを使用してこれを行うことも可能です。アイデアは、BitmapData.draw() を使用して、高さ 1 のクリッピング rect と変換を使用して各線を描画し、遠近法による分割を行うことです。例 (フレックス):

class Main extends Sprite
{
    [Embed(systemFont="Arial", fontName="embedFont", mimeType="application/x-font")]
    var embedFont:Class;

    public function Main()
    {
        var text:TextField = new TextField();
        text.defaultTextFormat = new TextFormat("embedFont", 30);
        text.embedFonts = true;
        text.autoSize = TextFieldAutoSize.LEFT;
        text.text = "Hello, world\nHow nice\nto have\nmultiple\nlines!";
        var bmp:BitmapData = new BitmapData(150, 100);

        for (var i:int = 0; i != bmp.height; ++i) {
            var m:Matrix = new Matrix();
            // x-division, change 0.8, 0.2 to change scale increase, scale at top
            m.a = i*(0.8/bmp.height)+0.2;
            // horizontal center
            m.tx = bmp.width * (1-m.a) / 2;
            // y-division, and align text to bottom
            m.ty = (bmp.height-i)/m.a - bmp.height; 
            bmp.draw(text, m, null, null, new Rectangle(0, i, bmp.width, 1));
        }

        addChild(new Bitmap(bmp));
    }
}

私は計算をしていないので、物理的に正確かどうかはわかりませんが、アイデアが得られるはずです。

于 2009-02-20T05:13:51.203 に答える
1

Flash Player 9以前では、これを簡単な方法で行うことはできません。
Flash Player10とFlashCS4は、3D変換の基本的なサポートをいくつか導入していますが、これらは非常に単純であり、この「極端な」視点を正しく理解するのは難しいかもしれません。ただし、CS4オーサリングツールを使用したことがないので、CS4オーサリングツールの方が簡単かもしれません。

少しやり過ぎですが、papervisionaway3dのような完全な3Dエンジンもあります。

DisplacementMapFilterを使用するのが最善だと思います。オンラインでこの良い例を見つけるのに苦労しました。実際に自分で行ったことはありませんが、ドキュメントの例で問題なく開始できると思います。

気が向いたら、すべてのピクセルをビットマップに描画して1つずつ配置することもできます。これは、コーディングするのが最も楽しいことかもしれませんが、非常に遅く、見栄えがよくない可能性があります;)

于 2009-02-19T21:32:42.187 に答える
1

テキスト オブジェクトを画像に変換してから、それを画像に変換することを検討してください。

-アダム

于 2009-02-19T18:13:24.527 に答える