• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:loadMovie の拡大縮小)

loadMovieの拡大縮小を制限する方法

このQ&Aのポイント
  • ActionScriptを使用してloadMovieで表示されるムービークリップ「screen」の拡大縮小を制限する方法について教えてください。
  • 現在、on(release)で指定されたActionScriptによって、screenが無限に拡大縮小されてしまいます。
  • 上限と下限を設定して、拡大縮小の範囲を制限することはできるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.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 文を使って上限・下限を設定する処理は、変数の値を限定する時などにもよく使います。 例えば利用限度額が決まっている決済などで、買い物の金額が無限に増えていっては困るような処理でも、これと同じ考え方で限度を設けたり、警告を出したりすることができます。 何かの折に、研究してみてください。

noname#70729
質問者

お礼

ご回答ありがとうございます。 とても参考になりました。 ifの使い方がいまいち分からなかったのですが、これを見て 使い方が分かりました。 がんばってみたいと思います。 ありがとうございました。

関連するQ&A