- ベストアンサー
拡大、縮小させるアニメーション
MacのFlash8を使って簡単なアニメーションを作っています。 そこで文字の並んだ単語の中から1文字だけをズームするように拡大していき画面にその1文字だけを大きく表示させる(他の文字は表示範囲の外へ) というアニメーションを作りたいのですが、モーショントゥイーンという機能で最初のフレームには単語全体を、最後のフレームにはその単語を、アップにしたい1文字が表示範囲に一杯になるまで拡大する という方法しかわからないのですが、もっと頭の良い方法はないのでしょうか。 全くの初心者で意味のとりにくい文章になってしまいましたが、助けて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
でしたら、Tagliatelleさんの仰っている方法が頭の良い方法だと思うのですが・・・。 最初と最後を指定してモーショントゥイーンにすればアニメーションになるので 間のフレームを作らなくて済む分便利じゃないかと。 アップにしたい1文字が表示範囲に一杯になるまで 拡大したいわけではない、ということでしょうか?
その他の回答 (2)
わかるような,わからないような, やっぱりわからないご質問ですね。 悩みというか疑問というかご質問を簡単に要約すると, 「Flash簡単すぎ! みんな何を難しく悩んでるの?」 というご質問でしょうか? ご質問で書かれているモーショントゥイーンの方法で問題がなければそれで良いと思いますし, 他に特に良い方法はないと思います。 Flashは簡単すぎるでしょう。 私は簡単すぎると思います。 文字も自由な場所に打てますし, 絵も描けて, さらに外部からも各種画像が持って来れて, 文字や絵のレイアウトも自由自在。 MS-Word や 一太郎 よりずっと簡単ですね。 年賀状作りなんかもバッチリ。 実際に私は,最近年賀状はFlashで作ることが多いですよ。 他のソフトよりずっと簡単にできてしまいます。 Flash は何が難しいのでしょうかね??? 今までかつて Flash は難しいと思った事がないので, 世間でよく言われる, 「Flash は難しい」,「Flash はプロ仕様」,「素人には敷居が高い」… この意味がさっぱりわかりません。 こういう風評を聞いていると, 実際に Flash を使ってみたとき, 拍子抜けしてバカみたいに簡単なソフトに思えるかもしれません。 でも,実際にそうです。 バカみたいに簡単なソフトだと私は思います。 例えば,絶対に Word よりは簡単です。 Word は慣れるまで, 自由にレイアウトしたり,自由に文字を打てたりできません。 Flash は パソコンを始めたばかりの初心者の方であっても, 即日から文字や絵を自由に配置出来て,グリグリ回転させたり縮小させたりできます。 ですから, ご質問で書かれているようなものが質問者さまの意図する物で, その通りに動いてくれれば何も悩むことはありませんし, もっと素晴らしい(頭の良い?)方法を考える必要も特にないと思います。 自信を持ってください。 ご質問で書かれている方法がBestな方法です。 Flash は簡単なのですが, Flash で作る作品のデザインを考えたり, 物を動かすときに数学が必要になってくると, その表現や発想や数学が難しいと思うことがよくあります。 簡単に言うと, Flash が難しいわけではありません。 自分(私自身)の能力が乏しいだけですね。 ======================== みなさん(世間の方々)は何が難しくて, なぜ Flash は難しいと言われているかと言うと, ご質問のように 「静的条件」で文字列を拡大させるのであれば簡単なのです。 また,その簡単なモーショントゥイーンの方法で十分だと思います。 しかし, 「動的条件」で文字を拡大させるのは難しくなってきます。 例えば, 「Flash」という5文字の文字列があったとします。 "s" の字を拡大したいだけでしたらモーショントゥイーンで十分です。 しかし,見ている側が, "F" をクリックしたなら "F" を拡大, "l" をクリックしたなら "l" を拡大, "a" をクリックしたなら "a" を拡大, のようにさせたい場合, モーショントゥイーンでは それぞれの場合についてあらかじめ作っておかなければならなくなります。 文字数が増えると全ての場合について全てのモーショントゥイーンを作成しておくのは不可能になりますね。 そういう場合に, ActionScript で動かすような必要性が出てくるのです。 そういう事態に遭遇したとき, モーショントゥイーン以外の素晴らしい(頭の良い?)方法を考えれば良いわけですが, 普通のアニメーションには別に必要ありません。 以下に書くものは, 上記のように「動的条件」によって拡大を変える例です。 新規ドキュメントを作成して, ステージ上に好きな大きさで 静止テキストで 「Flash」 という文字列を用意します。 その 「Flash」 がちょうど見えるくらいの大きさにステージ(ドキュメント)の大きさを設定します。 そして, 「Flash」という文字列を選択してムービークリップに変換します。 その,ムービークリップになった「Flash」を選択した状態で, 下のアクションパネルを表示させて, スクリプトを書く白い部分に,次のスクリプトをコピペします。 --------------------------------------------- // このムービークリップが表示されたとき onClipEvent (load) { // 拡大縮小スピードの設定(※可変) var speed = 2/10; // 拡大率の設定%(※可変) var mag = 600; // 親の基準点座標を記録 var p_x = this._parent._x; var p_y = this._parent._y; // 自分自身の基準点座標を記録 var t_x = this._x; var t_y = this._y; // フラグの初期値 var flag = 0; } // // このムービークリップがクリックされたとき on (release) { // もし flag の値が 0 であれば if (flag == 0) { // 親の基準点座標をマウスに一致させる this._parent._x = _root._xmouse; this._parent._y = _root._ymouse; // 自分自身は親が移動した分逆向きに移動 this._x += p_x-_root._xmouse; this._y += p_y-_root._ymouse; // flag の値を 1 にする flag = 1; // // flag の値が 0 以外の時 } else { // flag の値を 0 に戻す flag = 0; } } // // 1フレーム進む時間ごとに毎回実行 onClipEvent (enterFrame) { // もし flag の値が 0 であれば if (flag == 0) { // 親と自分自身の座標を徐々に元に戻す this._parent._x += (p_x-this._parent._x)*speed; this._parent._y += (p_y-this._parent._y)*speed; this._x += (t_x-this._x)*speed; this._y += (t_y-this._y)*speed; // 大きさを徐々に元に戻す this._parent._xscale += (100-this._parent._xscale)*speed; this._parent._yscale += (100-this._parent._yscale)*speed; // // もし flag の値が 0 以外であれば } else { // 親の座標を徐々に中央に近づける this._parent._x += (Stage.width/2-this._parent._x)*speed; this._parent._y += (Stage.height/2-this._parent._y)*speed; // 大きさを徐々に拡大 this._parent._xscale += (mag-this._parent._xscale)*speed; this._parent._yscale += (mag-this._parent._yscale)*speed; } } --------------------------------------------- コピペしたら, ステージの方に戻って, ムービークリップになった「Flash」を, さらにもう一度ムービークリップに変換します。 つまり, ムービークリップの中にムービークリップがあって, その中に「Flash」という静止テキストが入っている状態です。 そして, ムービープレビューやパブリッシュをしてもらうと, クリックした文字(クリックした箇所)がステージの中央に向けて拡大されるものができます。 もう一度クリックすると小さくなって元の位置に戻ります。 ※ 文字の揺らぎが気になるようでしたら, 「Flash」を書いた静止テキストのプロパティを [アンチエイリアス(アニメーション優先)]にするか, または,文字を分解して塗りにしてしまうと 揺らぎがおさまります。 ※ スクリプト中の (※可変) が付いている部分の 数字を変えるとスピードや大きさがかわります。 上のように「Flash」という文字列だと面白くありませんが, 例えば地図や文字がビッシリ書き込まれたものに使うと, 見ている方は知りたい部分が拡大されて便利かもしれませんね。 こういうことが必要になってくると少しだけ難しくなります。 しかし Flash が難しいわけではありません。 仕組みを考えたり算数を使ったりするのが難しいだけです。 また, 上のようにする必要がなければ,考える必要もありません。 モーショントゥイーンで十分です。 #2の方も書かれていますが, 特に何も問題がなければ, ご質問で書かれている方法が,正真正銘, 一番頭の良いというか,一番まともで,最短な方法です。 自信を持ってください。
お礼
この方法でいいんですね。やり方が拡大させるだけという単純なものだったので心配(?)だったんです。でも安心しました。 この質問には特に深い意味は持たせてないですよ(笑)ありがとうございました。
- Manuel
- ベストアンサー率43% (43/98)
的外れなことだったら、すいません。 単語の文字をそれぞれ(もしくは拡大したい文字を)別のテキストボックスに分けて、その文字(テキストボックス)だけに今やっている処理をしてみるのはいかがでしょう?
補足
ごめんなさい。質問が間違っていました。 1文字だけを拡大させるのではなく「単語を拡大してゆき、1文字だけをアップにしたい」でした。 私が質問してしまったものはテキストボックスを分けるという方法が使えそうですね。
お礼
この方法でいいんですね。そうですよね、簡単にできる方法がいちばんですもんね。 ありがとうございました。