• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:scriptを使いまわしたい。)

スクリプトの再利用方法と問題点

このQ&Aのポイント
  • scriptを使いまわしたい。複数のムービークリップに設定していますが、編集するのにかなり手間がかかります。うまく使いまわす方法はございませんでしょうか…。
  • また、記述の仕方にも問題等ありましたらご指南ください。
  • スクリプトを使いまわす方法と、記述の問題点についてご教示いただきたいです。

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

  • ベストアンサー
回答No.1

クラスファイルを使えばいいと思います。 ■Flasjのバージョンを書いてないと解答しにくいです。 ※眠いので、思考力が低下してます。意味不明なとこあったら、後日書き直します。指摘して下さい。 testClass.as class testClass extends MovieClip { var sx_move:Number; var sy_move:Number; var s_scale:Number; var n:Number; var tesInt:Number; var tesRoll :Number; function testClass() { sx_move = Math.floor(Math.random()*-10)-3; sy_move = Math.floor(Math.random()*6)-3; s_scale = Math.floor(Math.random()*40)+40; _xscale = (s_scale); _yscale = (s_scale); n = 1; tesInt = setInterval(this, "mcMov", 1000/12); } function mcMov() { _x += (sx_move); _y += (sy_move); } function onRollOver() { tesRoll = setInterval(this, "mcRoll", 1000/12); } function mcRoll() { n += 1; _x -= (sx_move); _y -= (sy_move); if (n<20) { _x = (_x+25)/1.5; _y = (_y+12)/1.5; _xscale = (_xscale+50)/1.5; _yscale = (_yscale+50)/1.5; } else if (n<40) { stop(); } else if (n<50) { _x += 13; _y += 13; _alpha -= 20; _xscale = (_xscale)/1.2; _yscale = (_yscale)/1.2; } else { stop(); } } } Flashの画面から ■新規→ActionScript(AS)ファイル→上記のスクリプトを【 testClass 】と名前をつけて保存 ■新規→Flashドキュメント→てきとうに絵を描いてムービークリップ化 +その時に、 リンケージ 『 ActionScriptに書き出し 』にチェック → 『 AS2.0クラス 』に【 testClass 】と入力 ■新規→パブリッシュ設定→Flashのタブ→ActionScriptの設定→さきほど作ったtestClass.asファイルへのパスを設定 ムービークリップに書いていたものを、クラスファイルに書いた時のスクリプトです。 複数のムービークリップに一括しい設定できますよね。 即席で書いてるので、ちやんと書きなおして下さい。 スクノプトの指摘としては、 ・ 深度の設定をする ・ onEnterFrameなどのループものは、処理が終わったら消す ・ thisを指定する ・ ( 欲をいえば、もっとコンパクトに ) ※WinXp、Flas8、動作確認しました。

x_lady007
質問者

お礼

非常に丁寧なご回答本当にありがとうございました。 会社は flash8 があるので今朝トライしたところ、すんなり出来ました! しかし、情報足らずで申し訳なかったのですが、自宅の flash バージョンは 5 か MX なのです。 なんとか flash5 でも動作するようなスクリプトは組めませんでしょうか…? また、外部読み込みを使用しない方法もあれば、ご教授願います。 いろいろ学びたくて、、ずうずうしくて申し訳ありません。。

すると、全ての回答が全文表示されます。

関連するQ&A