- 締切済み
Flashで文字を一文字ずつつくってムービーさせるのをカンタンに済ます方法はないでしょうか?
FlashMXです。 何らかの文字列、例えば何でもいいですが「World Wide Web」という文字をムービーさせたいとします。 それを一文字ずつ出現させて最終的に全ての文字が見えるところで止まる、ということをしたいのですが、一文字ずつアルファ0%で最終文字サイズと比べて500%のサイズからムービースタートし、それがだんだんアルファがなくなっていってサイズも最終的に見せたいサイズに縮まっていく、という感じの見せ方にしたいです。 これをする場合、一度にWorld Wide Webとテキスト入力してしまっては出来ませんよね。 なので、今は地道に一文字ずつ入力して、それぞれの文字に対して上記のような効果をつくっていく方法をとっているのですが、ただでさえ手間なのに加え、お客様から文字内容の変更があった場合はもっと面倒になり、嫌気がさしております。 このような、一文字ずつに対して効果を施すときでも文字入力は全ての文字を一度入力すれば済むような、簡便にできる方法はないものでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
質問者様のされている方法で全く間違いないです。 ActionScriptを使ってもモーショントゥイーンを使っても, 1文字1文字は別のオブジェクトにしないと,バラバラの動きはしません。 ActionScriptを使ったとしても, "W" なら "W" と1文字だけ書いた文字を1つのムービークリップとして用意し, そのムービークリップに, ------------------------------ onClipEvent (load) { //最初の文字のサイズを記録 pause_x = this._xscale; pause_y = this._yscale; //縦横を5倍に アルファは 0 に this._xscale *= 5; this._yscale *= 5; this._alpha = 0; } onClipEvent (enterFrame) { //もし最初に記録したサイズより大きいとき if (this._xscale>pause_x) { //徐々に縮小 アルファは増やす this._xscale *= 0.8; this._yscale *= 0.8; this._alpha += 4; //最初に記録したサイズになれば } else { //文字の大きさを最初の大きさで固定 this._xscale = pause_x; this._yscale = pause_y; //アルファも100で固定 this._alpha = 100; } } //(全角空白文字が入っているため,そのままコピペでは使用出来ません。) ----------------------------- のようなことを書くくらいのことがせいぜいできるだけです。 結局,モーショントゥイーンでするのと同じことになりますし, 微調整などの手間を考えると,モーショントゥイーンの方が楽だと思います。 またこの場合,モーショントゥイーンの方がクライアントのCPUに負担をかけません。 質問されているのに,似た場合ですが, 1文字分のダイナミックテキストをムービークリップ内に入れて, そのダイナミックテキストに変数名をつけて,その変数に "W" なら "W" という値を代入して行くというのが 更新には便利です。が! ダイナミックテキストにはアルファがかかりません。また凝った書体も使えません。 だから,やはり静止テキストを1文字ずつバラバラに書き,別々のオブジェクトにしないとできませんね。 「World Wide Web」 上記の文字列は例だとは思いますが,空白文字も含めて14文字です。 20文字くらいが登場するアニメーションをあらかじめ作っておいて, 修正がある場合はライブラリの中にあるテキストを変更されてはいかがでしょうか? 1文字1文字は当然,グラフィックオブジェクトかムービークリップオブジェクトにしてありますよね。 その登録されているライブラリ内の文字を変更すると,ステージ上に見える文字も変わります。 文字のない空白部分は,そのオブジェクトを消してしまうのではなく,透明な文字を入力しておけば良いです 更新のことなどを考えると,文字は静止テキストで書いておいて,分解しないほうが良いです。 分解すると元の文字情報も消えるので,文字書体やポイント数をどこかに記録しておかないとならなくなり大変不便です。 ご質問を拝見して,最初, 「文字に見たてたムービークリップを20個ぐらい作ってアニメーションさせ, 外部の1文字だけのSWFを20個ぐらい用意して, loadMovie("○○.swf", "ターゲット"); でそのムービークリップにロードさせてはどうかな?」 と考えてみたのですが,ファイル管理が大変になりますし, ロードされるまでの時間計算や処理を考えるとややこしくなるので,やはり上で書いたライブラリのオブジェクトを編集する方が確実で楽だと思います。 >> お客様から文字内容の変更があった場合は >> もっと面倒になり、嫌気がさしております。 ここは,笑えました。失礼…。 最初に作る場合の修正変更は別として, 更新が度々あるような場所に使うような案は提示しないことですね。 私がたまにお小遣い稼ぎをさせてもらっている会社のデザイナーさんが,そんな方です。 Flashをまるでわかっていない人なのでとんでもないデザインを考えてくれます。 デザインだけを見るとと全く良いデザインだとは思うのですが,更新のことや,ファイルの特性だとかわかっていないので,作成側は大変です。 お客様の方に先にそのとんでもない案を提示され,お客様が「それで行こう!」と快諾されると,こっちは作るしかない。本当に困ったものだ… 同じような経験があるので笑えてしまいました。 文字の出方が,そういう凝った部分は更新しない部分に使うべきです。 Flashに堪能でも堪能でなくても,面倒で嫌気がさしますよ,当然。 頑張ってくださいp(´∇`)q ファイトォ~♪。としか言いようがありません。 頑張りたいところですが,やれやれ…ですね。
- pchan0022000
- ベストアンサー率42% (112/261)
「一度にWorld Wide Webとテキスト入力してしまっては出来ませんよね」という事だったので、一文字ずつ入力してるのかと思い、分解してはどうですかと書いたのですが、違ったみたいですね。 とりあえずActionScript使えばできそうですけど、Flashの標準機能で該当するものは知らないです。お役にたてず申し訳ないっす。
お礼
とんでもないッス。書き方がウマくなくて済みませんでした
- pchan0022000
- ベストアンサー率42% (112/261)
FlashMX2004の話なんで出来ないかもしれないですが。 テキストを入力した後に、テキストを選択してメニューの「修正」―「分解」で1文字ずつに分けれませんか?
お礼
ありがとうございます。 そうですね・・・それは古いバージョンからできると思います。 が、分解する意味がありますかね・・・。 一文字一文字それぞれをムービークリップにしないといけないわけだから、分解しようがしまいがつくる手間は変わらなくないですかね? それに、変更があった場合はむしろ分解してしまったらまた打ち直しになっちゃいますからその手間もありますし、位置ずれが起こりますよね。 何か理解が違っていたら済みませんが、自分の知識ではこう思うのですがどうでしょうか・・・
お礼
いやいや、これまたたくさんご案内いただき感謝です! 私もActionScriptかもしくはテンプレート機能みたいなもので何とかならないもんかと思っていたんですが、ActionScriptの方はおっしゃるとおりで静止テキストはムリだと思ってたんで難しいかなと思ってました。 あとはテンプレート機能みたいなものが実はあって、それならできる、とかないのかな?と。 しかしやっぱりムリっぽいですかね・・・。 どうやらまだこのあたりは機能アップしていないようですかね。ここがFlashのバージョンアップによって楽になればかなりの嬉しさがあるんですが。 繰り返し部分はなるだけ楽にできるようにして欲しいですね。 特にこの利用方法は極めて多用されますから特に。 それにしても、回答者様の内容を拝見してますと同士、戦友のような気がしてきますから不思議ですね。やっぱ同業は気持ちをわかってくれます ( 笑 ) 。 今オレが希求してるのは、いかにデザインを犠牲にせずに作業も簡略化するか?でして、今までうまく簡略化できたところもあれば、今回のように策見当たらず、のところもあるという感じでして。 だからオレとしては、よく利用するようなところを優先してFlashのテンプレート機能を充実(フォームなど良い点もでてきてますし)して欲しいと思ってます。 今やFlashは目新しさはなくなっていますから、まさしく次のステージにいかなくてはならないと感じています。もちろん先のフォームや動的ウェブアプリケーションとの連携など行ってる部分もありますが sassakunさんも頑張ってください!