- 締切済み
背景は伸縮OK、中身は伸縮NGにするには
Flash CS3、AS.2でタイトルのようなサイトを作ろうと目論んでいます。 以下きっかけとなったサイト様 http://underplot.jp/ Flashがあまりわかっていない自分ですが、やたらと聞くのは自分の成長に良くないと思いながらも、とうとう迷宮入りしたと自覚してご質問させていただく次第です。 まず、背景を作ることにチャレンジしました。 画面サイズを変えても伸縮するなんて、ASに違いないと勝手に思い込んで、beginGradientFill等の知らなかったビルトインクラスを知るきっかけになったのですが、結局自分のやろうとしていることは、背景を描いて、書き出す時にパブリッシュ設定を変更し、HTMLファイルのほうで、bodyタグをいじれば再現出来ることを知りました。 やったやったと思って、コンテンツを作ろうと思った時に、ふと頭をよぎったのがタイトルの事です。 案の定、仮に矩形を描いて試してみると、矩形も一緒に伸縮してしまいます。 しかし、参考サイト様はそうはなりません。 これは、どうやって表現するのでしょうか? ちなみにクラスを自作したことがないレベルです…orz 壁にぶちあたっています。どなたかよろしくお願いします。 クラスの自作ができるようになりたいですが、いまいち自分で買った参考書を読んでいてもほとんど理解ができません。 おすすめの参考書がありましたら、教えて頂けませんか。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
カスタムクラスなど作成する必要は特にありません。 「背景は伸縮OK、中身は伸縮NGにするには」 ↓考えなおす↓ 「全ての伸縮をNG、背景のみを特別に伸縮させる」 こう考えると簡単です。 // ステージにあるもの全ての拡大縮小なし Stage.scaleMode = "noScale"; これを _root(シーン1などメインのタイムライン)のフレーム1の最初辺りに書けば、 「全ての伸縮をNG」が可能になります。 あと, // ステージの上左を基準にして固定する Stage.align = "TL"; も計算上必要になります。 「背景のみを特別に伸縮させる」部分は、 そういうタイミングで背景を画面とフィットさせるかがまず問題です。 これは、 『Flashが表示された瞬間』と『画面が伸縮したとき』です。 このときに、 背景画像の高さと横幅を画面に対してフィットさせるように拡大縮小させます。 従って、 「背景画像の高さと横幅を画面に対してフィットさせる」 という関数を作って、 それを 『Flashが表示された瞬間』と『画面が伸縮したとき』の両方で動作させれば良いと言うことになります。 画像の横幅と高さは指定できない(かなり指定しにくい)ので、 背景画像はムービークリップに変換します。 そのムービークリップに変換するときに『基準点』の位置を左上にします。 その『基準点』の位置を左上に設定したムービークリップの横幅と高さをステージの横幅と高さに合わせれば一応はフィットします。 しかしこれだと, 背景画像の縦横比がステージの形に合わせて変形してしまいます。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ そこで、そうならないように、 画像をどう表示させたいかを具体的に考えて、 その表示させたいように縦横を拡大させる式を考えればできあがりです。 (どう表示させたいかは私にはわかりません。作者が決めることです。) 下記のページは、 「Adobe(Macromedia) Flash」ユーザのための解説サイトではなく、 フリーのFlash作成ソフト「Suzuka」ユーザを対象にしたサイトですが、 考え方 と ActionScript は共通していますから、 参考にしてみられても良いと思います。 「Suzuka 基礎・基本 フル画面Flash (Stageクラス)」 http://suzupara.iinaa.net/kiso411.html ↑要は スプートニク が画面サイズの変更に合わせて拡大縮小します。 この拡大縮小の式ではなく、 ステージのサイズに合わせて背景画像を拡大縮小する式を自分で作れば良いということです。