• ベストアンサー

Actionscript3.0の記述場所について

Flash、Actionscript3.0独学の者です。 シーンを分けてFlashコンテンツを作成しているのですが、 全シーンに使う関数はどこに記述したらよいのでしょうか。 全シーンの1フレーム目に書いたら関数の定義が重複してしまいます。 初歩的な質問ですみませんが、よろしくお願いいたします。 ■開発環境 ・windows7 professional 64bit :・Adobe Flash CS6

  • Flash
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

同じ関数名の関数であれば 全シーン の 1フレーム目 に重複して書いても ムービー全体の 1フレーム目 に重複して書いても どっちにしても重複すると思います。 つまり 同じ階層に同じ関数名の関数を定義するのでしたら どのフレームに書いても重複するものは重複するのですから その点に関してだけ言えばどこに書くとかは全く関係ないでしょう。 もし,全シーンに使う関数が複数あって それら関数の内容が全く同じでしたら 1つだけの関数で済むわけですから そもそも重複定義などする必要はなく メインタイムラインの最初のシーンの最初のフレームに1つ書いておけば良いだけではないでしょうか? それで何か不都合が生じるのでしょうか? 逆になぜ全シーンの1フレーム目に全く同じ関数を定義するのか,その意味がわかりません。 (そんな変なことを元からしなければ良いだけなのではないかという意味です。) また,全シーンに使う関数が複数あって それら関数の内容が違うのでしたら 当然名前は変えるべきですし。。。 とにかく なぜ全シーンの1フレーム目に同じ関数名の関数を定義しようとされているのかがわかりませんが もし何かのインスタンスに その関数を addEventListener することがあるのでしたら その addEventListener と関数自体は分けて考えた方が良いでしょう。 関数だけは先に定義しておいて インスタンスが登場したときに addEventListener するという意味です。 架空状況として... たとえば 「シーン 1」の フレーム1 からボタン「a_btn」が登場し 「シーン 2」の フレーム2 からボタン「a_btn」とボタン「b_btn」が登場するとします。 そして 各ボタンをクリックしたときに各ボタンのインスタンス名を出力する関数を用意するとします。 その場合 「シーン 1」の フレーム1 には //関数 test の定義 function test(e:MouseEvent):void{ //クリックした対象インスタンスのインスタンス名を出力 trace(e.currentTarget.name); } //「a_btn」のイベントリスナーとして関数 test を登録 a_btn.addEventListener(MouseEvent.CLICK,test); と書いて 「シーン 2」の フレーム1 には //「a_btn」のイベントリスナーとして関数 test を登録 a_btn.addEventListener(MouseEvent.CLICK,test); //「b_btn」のイベントリスナーとして関数 test を登録 b_btn.addEventListener(MouseEvent.CLICK,test); と書けば良いでしょう。 つまり関数の定義は1回で良いです。 具体的状況がわからないので, このくらいの漠然とした架空状況でのことしか書けませんが。。。

tatsuki0121
質問者

お礼

お礼遅くなってしまいすみません。 addEventListenerと関数をひとまとめにしてました… 関数は一回で、addEventListenerを必要なシーンに書くのですね! ありがとうございました!

関連するQ&A

  • Flash ActionScriptで画像の読み込み

    Flashでトランプゲームを作ろうと思っているのですが、カード一つ一つシンボルに入れると容量が大きくなるので、画像を読み込もうと思いました。 が、読み込み方法が良くわかりません。 ActionScriptならこういうのがあると思ってネットで色々調べてみたのですが、しっくりとしたサンプルがなかったのでここに書き込みました。 使っているソフトはAdobe Flash CS3 Professionalです。

    • ベストアンサー
    • Flash
  • FlashのActionScriptについて質問です。

    FlashのActionScriptについて質問です。 Flash CS4のAS2.0を使用 ActionScriptの書き方で (1)ボタンインスタンスに書く (2)対象のインスタンスのフレームに書く (3)ActionScript専用のフレームを作成しそこへ書く 参考書等を読んでいるとActionScriptを書くときに、上記3つの方法が あり混乱しています。 それぞれ、どのような違いがあるのでしょうか?また、どのように使い分けるのでしょうか? Flashに関しては、始めたばかりの超初心者です。どうぞ宜しくお願いします。

  • FlashのActionScriptについて

    FlashのActionScriptについて Flash CS4(AS2.0)を使用 Flashに関しては初心者で、色々な参考書を見ている中で、 AkutionScriptの書き方に色々なパターンがあって分からなくなりました。 アクションを書き込む際、 (1)専用のActionScriptのフレームを作成してそこに書く (2)ボタンインスタンスに書く (3)対象のシンボルのフレームに書く 上記3つの方法はそれぞれどのような違いがあるのでしょうか?又、どのようにして 使い分けするのでしょうか?

  • FLASH8でActionscriptが動きません

    FLASH8のActionscriptを使って簡単なイベント処理を実行したいのですが、うまくいかず困っています。 conts1_btnというインスタンス名を付けたボタンをクリックしたら、Contents1というラベルを付けたフレームに飛ぶという処理です。 以下、そのコードです。 function go_conts1(btn1event) { this.gotoAndPlay("Contents1"); } conts1_btn.addEventListener(MouseEvent.CLICK,go_conts1); FLASH CS3の参考書を見て、記述したのですが8とCS3では記述方法に違いなどあるのでしょうか?宜しくお願いします。

  • getURLが効きません。

    getURLが効きません。 ホームページを作っています。 FLASHのムービーが再生し終わったあと、 自動的に指定したURLにジャンプさせたいのですが、 うまくいきません。 使っているソフトは、 Adobe Flash Professional CS5 です。 タイムラインにAcctionレイヤーをつくって、 最終フレームをキーフレームにして、 ActionScriptを記述しました。 1行目に getURL(http://xn--eck3azbp7f0frfe.com/html.html); と記してあります。 プレビューすると、 シーン=シーン 1, layer=レイヤー 18, frame=46、行 1 ')' または ',' が必要です。 コンパイルエラーというのが出てきました。 ActionScript自体が効かないのかと思いましたが、 stop(); の指令だとちゃんと効いてくれます。 じぶんでも調べては見たのですが、 どうすれば飛べるのかわかりません。 みなさまの知恵をお貸しください。 よろしくおねがいします。

  • ドラッグする記述

    FLASH CS4 アクションスクリプト3.0で制作中です。 大変初歩的な質問なのですが、ムービークリップをドラッグする記述で困っています。 onDragを使用してひとつだけドラッグで動かすことはできたのですが、 他のムービークリップに同じ記述をすると 関数の定義が重複しています、とエラーが出てしまい、色々やってはみたものの対処法がわからず困っている次第です…。 大変お恥ずかしいですが、助言よろしくお願いいたします。 ちなみにドラッグしたいものがたくさんあるのですが(20個近く)、一挙に設定する方法はありますでしょうか。

    • ベストアンサー
    • Flash
  • Flash ActionScript3.0 クラスの使い方について

    Flash ActionScript3.0 クラスの使い方について お世話になっております。 Flash ActionScript3.0でコンテンツを制作しているのですが、 そのコンテンツにローディングアイコンを実装したく、検索エンジンにて探した結果以下のサイトが見つかりました。 ◆[actionscript3.0]ローディングアイコン生成用のクラス http://blog.wonder-boys.net/?p=379 非常に使い勝手がよさそうで実装を試みたのですが、 上記サイトに書いてあります、 「クラスを初期化してステージに配置する」 という表現がわかりません。 そもそもクラスというのはどのようにして使えるものなのでしょうか? 【ファイル】→【新規】→【ActionScript3.0 クラス】 という方法でクラスの生成の仕方はわかったのですが、 それをどこに保存し、どのようにFLAファイルに適応させるかがわかりません。。。 具体的な作業を教えていただけましたら幸いです。 Flash CS5 ActionScript3.0 を使用しております。 宜しくお願いいたします。

  • FLASH lite 1.1 の開発に最適のツール

    プログラマーです。 今度初めて FLASH lite 1.1 の開発をすることになったのですが、開発ツールに何を使おうか調べてみると 『Adobe Flash Lite 1.0 に対応するための Adobe Flash MX アップデータ』をインストールする。 『Macromedia Flash MX Professional 2004』を利用する。 『Macromedia Flash Professional 8』を利用する。 『Adobe Flash CS3 Professional』を利用する。 『Adobe Flash CS4 Professional』を利用する。 などいろいろ出てきて、どれを買ったらよいのか迷ってしまいます。 これらのツールの特徴や、主観でかまいませんからズバリ自分ならこれがお勧め、という意見をお教え願えないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flash CS4 actionscript3.0に関しての質問です。

    Flash CS4 actionscript3.0に関しての質問です。 あるボタンMCにaddEventListenerでリスナーを設定しているのですが、 親MCをgotoAndStopにてフレーム移動し、また元のフレームに移動してくると 設定したリスナーがなくなっているのです。 この場合は都度、リスナーを再設定するしかないのでしょうか?

    • ベストアンサー
    • Flash
  • ActionScript3.0について教えていただきたいです。

    ActionScript3.0について教えていただきたいです。 下記の添付画像を参考にしていただくと理解しやすいかと思います。 FLASH CS4にて、フレームの移動を行いたいのですが、どうも上手くいきません。 「メニュー画面」でボタンを選択し、「サブメニュー画面」を表示するところまではできるのですが、 緑のボタンをクリックして、「目的のページ」に移動する事ができません。 「メニュー画面」から「サブメニュー画面」へは、 ボタン名.addEventListener(MouseEvent.CLICK,任意の関数名); function 任意の関数名(e:MouseEvent):void{ gotoAndStop(ページ数); } というスクリプトで動きますが、「サブメニュー画面」から「目的のページ」への移動ができない状況にあります。 どなたかわかる方いらっしゃいましたら、是非教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう