- ベストアンサー
loadMovieの拡大縮小を制限する方法
- ActionScriptを使用してloadMovieで表示されるムービークリップ「screen」の拡大縮小を制限する方法について教えてください。
- 現在、on(release)で指定されたActionScriptによって、screenが無限に拡大縮小されてしまいます。
- 上限と下限を設定して、拡大縮小の範囲を制限することはできるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
if 文で判断してはいかがでしょう。 _xscale と _yscale には、拡大率がパーセントで入っています。 原寸では 100 ですから、例えば2倍なら 200 ということになります。 拡大ボタンで2倍までしか拡大されないようにするには、if 文を使って (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります) on(release) { //ムービークリップを拡大 screen._xscale *= 1.2; screen._yscale *= 1.2; //原寸の2倍より大きくならないようにする if( screen._xscale >= 200 ) { screen._xscale = 200; } if( screen._yscale >= 200 ) { screen._yscale = 200; } } 縮小する時の条件は、例えば原寸の 1/2 を限度にしたいのであれば _xscale と _yscale を 50 までに限定すればいいということですから、 //原寸の1/2より小さくならないようにする if( screen._xscale <= 50 ) { screen._yscale = 50; } if( screen._yscale <= 50 ) { screen._yscale = 50; } このような条件になります。 なお、_xscale と _yscale はあくまでも、元のシンボルの大きさを基準とした拡大率になっています。 例えば 100 x 50 のムービークリップを、ステージに配置する時点で変形ツールで 50 x 25 ( 1/2 のサイズ)に縮小していた場合は、_xscale と _yscale には最初から 50 が入っています。 拡大率ではなく、サイズそのもので考えることもできます。 ムービークリップのサイズは、幅が _width 、高さが _height というプロパティに格納されていて、_xscale や _yscale を書き換えた時に連動して変化するようになっています。 例えば screen が幅 100 ・高さ 50 のムービークリップだったとすると、2倍にすると _width の上限は 200 ・ _height の上限は 100 となります。 on(release) { //ムービークリップを拡大 screen._xscale *= 1.2; screen._yscale *= 1.2; //原寸の2倍より大きくならないようにする if( screen._width >= 200 ) { screen._width = 200; } if( screen._height >= 100 ) { screen._height = 100; } } 縮小の場合も同じように考えて、下限を設定してみてください。 if 文を使って上限・下限を設定する処理は、変数の値を限定する時などにもよく使います。 例えば利用限度額が決まっている決済などで、買い物の金額が無限に増えていっては困るような処理でも、これと同じ考え方で限度を設けたり、警告を出したりすることができます。 何かの折に、研究してみてください。
お礼
ご回答ありがとうございます。 とても参考になりました。 ifの使い方がいまいち分からなかったのですが、これを見て 使い方が分かりました。 がんばってみたいと思います。 ありがとうございました。