オブジェクトアクションの設定について

このQ&Aのポイント
  • オブジェクトアクションの設定方法とは、FlashMXでバナーを作成する際に行う指定方法です。
  • インスタンスごとに設定するため、配置したシンボルをクリックし、インスタンスをクリックし、グラフィックをボタンに変更し、アクションパネルにスクリプトを記入します。
  • 設定作業には時間がかかるため、間違いがないか確認する必要があります。
回答を見る
  • ベストアンサー

オブジェクトアクションの設定について

FlashMXでバナーを作成する際、オブジェクトアクションの指定があり、ヘルプを読んで設定しましたが、初心者なものでわからない点が多々ありました。初歩的な質問ばかりですみませんが・・・わかる方教えてください。 Q1.オブジェクトアクションは、インスタンスごとに設定するとあったので下記のように行ったのですが・・・ (1)シンボルを配置したフレームをクリックして、 (2)インスタンスをクリックして、 (3)プロパティでグラフィック(作成したのはすべてグラフィックシンボルでした)をボタンに変更して、 (4)アクションパネルにスクリプトを記入する。 これを全フレーム内のインスタンスすべてに 繰り返す、というのでよかったのでしょうか? 長いフラッシュだと大変な作業ですし、もしかしたら間違っているのではと思っています。。 Q2.グラフィックシンボルなのに、ボタンに変更しないとスクリプトが書き込めないのはなぜですか。 Q3.ボタンにはインスタンス名を書き込む欄が出てきますが、これはどんな役割があるのでしょうか。 Q4.スクリプトは、 on (release) { getURL(_root.clickTAG, _root.targetTAG);} という内容ですが、これの正確な意味を教えてください。

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

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

A1. バナーは、再生されている間、ムービーのどの部分がクリックされても反応するように作らなければなりません。それで、ムービー内のオブジェクト全てに getURL (ページを表示するスクリプト)を設定しなければならないのだろうか、との疑問が出てくるのだと思います。 バナー制作の常套手段として、透明なボタンをムービー全体に重ねておき、このボタンが押された時にリンク先を表示する、という方法があります。 ムービーと同じサイズの四角いボタンを1つ作り、透明にして1番上に配置します。あとはこのボタンに getURL を設定するだけで、ムービーのどの部分がクリックされてもリンク先を表示することができます。 作り方・操作方法の詳細は、以前、別の質問で紹介しましたので、よろしければそちらをご参照ください。Q4.にも出ている、on(release) と getURL の意味についても説明しております。  ・リンクのはり方   http://okweb.jp/kotaeru.php3?q=1058449 A2. シンボルにはいくつかのタイプがあります。 読み込んだビットマップ系画像( JPEG ・ PNG ・ GIF など)は、グラフィックシンボルというタイプのシンボルになります。 Flash の仕様上、グラフィックシンボルは ActionScript で制御できないことになっています。ですから、グラフィックシンボルのインスタンス(ステージに配置した時にできる、シンボルの分身)には、スクリプトを一切設定できません。グラフィックシンボルは1枚の絵画のようなもので、まさしく”観賞することしかできないもの”です。 しかし、画像をクリックした時にページを表示するなど、単に絵として見るだけではない用途に利用したい場合もあります。 シンボルを作る時に、他のシンボルのインスタンスを内部に配置して、入れ子にすることもできます。 この点を利用して、”グラフィックシンボルのインスタンスが内部に配置された、ボタンシンボル”にすれば、見た目は画像(グラフィックシンボル)でも、Flash の内部ではボタンシンボルになります。 ボタンシンボルなら ActionScript が使えますので、クリックの検出等も可能です。 余談になりますが。 「プロパティ」パネルでグラフィックシンボルのインスタンスをボタンに変更すると、クリックの検出ができるようになるなど、ボタンに似た機能が使えるインスタンスに変わりますが、ボタンシンボルは作成されません。 ボタンシンボルは独特のフレームを持っています。それぞれのフレームを作っておくと、マウスの操作によって、自動的にフレームを切り替えてくれる機能があります。 しかし、「プロパティ」パネルで「ボタン」に変えただけのインスタンスでは、属性はボタンであっても、これらの恩恵を受けることができません。 マウスカーソルが重なった時やクリックされた時に絵が変わるボタンは、最初からボタンシンボルとして作ると簡単にできます。 A3. ActionScript はオブジェクト指向の言語、と言われます。オブジェクト指向のイメージとしては、いろいろな技能を持った人を必要なだけ連れてきて、その技能を使って仕事をする、といったところです。 技能を持った人を連れてくるには、様々な方法があります。ボタンやムービークリップは、シンボルを作ってその分身をステージに配置するだけで、ボタンやムービークリップが持っている様々な技能を利用できるようになります。 ヘルプの「 ActionScript 辞書」を開き、「B」の Button オブジェクト、「M」の MovieClip オブジェクトの項目を覗いてみてください。ボタンやムービークリップを配置すると、それだけで、これらの項目の ActionScript 全てが利用できるようになります。 会社などで人に仕事を依頼する時、誰にどんな仕事を頼むかをはっきりしなければなりません。同じ部署の人は同じ仕事をする仲間同士ですから、その中の誰に何を頼むかの指示は大切です。 ActionScript でもこれと同じことです。 ボタンやムービークリップが複数ある場合は特に、どのボタンまたはムービークリップも、それぞれ同じ名前の技能を持っていますので、どのボタン/ムービークリップの技能を使いたいのかを指定する方法が必要になります。 インスタンスには名前を付けることができます。この名前を使って、  インスタンス名.使いたい技能の名前 このようにして、特定のインスタンスの持つ技能を使い、細かく操作することができます。 インスタンス名を付けなかった場合は、Flash の内部では仮の名前で管理されます。 この仮の名前は、デバッガという機能を使うと分かりますが、普段は見ることができません。 複数のインスタンスがあって、その1つ1つを細かく制御する場合は、自分で分かりやすい名前を付けておいた方が管理しやすいです。 ちなみに、例えばムービークリップが5個ある場合、” clip1 ”” clip2 ”というように通し番号を使った名前を付けると、多数のムービークリップをスクリプトで制御する時に  for( i = 1 ; i <= 5 ; i++ )  {   this[ "clip" + i ].・・・  } このように、ループを使ってスッキリと指示を出すスクリプトも書けます。 インスタンスや変数・関数の命名術もテクニックの1つです。このインスタンスや変数が何であるか、何を操作しているのかなどが、スクリプトの中に出てきた時に推測しやすい名前にすることも大切です。 最初のうちはAやBなどと適当に付けてしまいがちですけれど、複雑なムービーを作る時は特に、名前の付け方も工夫してみてください。 A4. リンク先を開く時の getURL の書式は、  getURL( "ページのURL" , "表示するウィンドウまたはフレームの名前" ); となっています。 同じことを、URL やウィンドウ・フレームの名前を変数という別の入れ物に入れておいて、  getURL( 変数名 , 変数名 ); このように、入れ物の名前を渡して指定することもできます。 ご質問文にあるスクリプトは、後者の、変数を使った指定方法です。 _root.clickTAG と _root.targetTAG が、変数を使って指定している部分です。変数の名前が clickTAG と targetTAG で、その前に付いている” _root. ”とは、この変数の持ち主のようなものだと考えてください。 先ほどのA3.で、インスタンス名を指定して、そのインスタンスが持っている技能を使う方法をご紹介しました。 変数も同じです。自分の持っている以外の変数を利用する場合は、どのインスタンスが持っている変数を使わせてもらうのか、その持ち主の指定が必要です。 では、この変数の持ち主である _root は何者かと言いますと。 Flash では、ムービー自体も1つのムービークリップとして扱います。基本的には、_root とはムービー自身を指します。 ムービーのタイムラインを見てみてください。フレームに a のマークがある箇所は、フレームにスクリプトが設定されています。 その中に、clickTag = "・・・"; や、targetTAG = "・・・"; といった記述がありませんでしょうか。 この記述がない場合は、少々難しい話になりますが。 Flash では、外部のテキストファイルや HTML ファイルから変数を受け取ることもできます。 素材サイト等で配布している Flash の素材では、使う人ごとにリンク先等を変えられるようにと、ムービーと一緒に設定用のテキストファイルを配布している場合が殆どです。 このテキストファイルの中に、  clickTAG=*** & targetTAG=*** このような形で変数を書いておき、Flash で読み込むと、Flash の中で何も変数を作っておかなくても、_root.clickTAG = ・・・として、clickTAG や targetTAG という名前の変数を利用できるようになります。 テキストファイルではなく HTML から変数を受け取る方法もありますが、この話はややこしいので、今回は割愛させていただきます。 いずれにしても、ムービーの中に変数を定義している箇所が見当たらないのであれば、ムービー以外のところで変数の内容を設定し、その内容だけをムービーで利用しているものと思われます。 変数を使っていても、getURL に渡す内容は、開くページの URL と、それを表示するウィンドウまたはフレームの名前であることに変わりはありません。 つまり、  on (release) { getURL(_root.clickTAG, _root.targetTAG);} とは、「ボタンがクリックされた時、clickTAG 変数で指定されたページを、targetTAG 変数に入っている名前のウィンドウ(またはフレーム)に表示する」という意味になります。 長くなってすみませんでした。 不明な点がありましたら、補足してください。

niconico_1969
質問者

お礼

DPEさんの説明、授業を聞いているみたいに頭に入り、 大変ありがたかったです。リンクの貼り方のほうも、 そのまま役にたち、提出することができました。 (知らないまま仕事をしている自分が恐い・・) アクションスクリプトは苦手なのでまたお願いします。

関連するQ&A

  • ▼画像ボタンにリンクがつけられません;

    MacOSX、FlashMX2004を使用しています ネットなどでは、シンボル化したボタンを選択し、 右クリックをすればアクションというのが表示されるのでそれを クリック。とかいてあるのですが、それがでてきません・・・; アクションスクリプトに on (release) { getURL("http://flash.webkun.org/", "_blank"); これをいれればいいらしいのですが、アクションがでてこないので 挿入できません・・・どなたか助言願います

  • アクションスクリプトでブックマーク登録ボタンを作りたいです

    ボタンシンボルを作成して、そのボタンシンボルにアクションスクリプトを使用して、ブックマークに登録出来るようにしたいのです。 そのボタンをクリックする事によって、そのサイトがブックマークに登録出来るようなアクションスクリプト(の記述)を使いたいのですが、どなたか解る方がいましたら教えてください。よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 指定したURLを開くアクションスクリプトを教えてください

    FlashCS4です。アクションスクリプト3.0です。 タイムラインのフレームにアクションスクリプト3.0を使用して、ボタンをクリックしたら指定したURLが別ウインドウで開くアクションスクリプトの記述を教えてください。お願いします。 具体的には…例えばボタンに「navi_btn」と言うインスタンス名を使用して、そのボタンをクリックしたら指定したURLが別ウインドウで開くようにしたいのです…。教えてください。よろしくお願い致します。

    • ベストアンサー
    • Flash
  • オブジェクト参照がオブジェクト インスタンスに設定されていません??

    右クリックサーチ君というソフトDLしたんですが、起動しようとすると、「オブジェクト参照がオブジェクト インスタンスに設定されていません。」とでて「スクリプトの初回作成に失敗しました。」とでます。 これはどういうことなのですか? 知ってらっしゃる方がいたら教えてください。お願いします。

  • FLASH オブジェクトアクション

    初心者で、ボタンを制作中です。普通のボタンは音付きで難なく作れたのですが、一つのボタンにマウスを近づけたらサブメニューが出てくるものを http://www2.netwave.or.jp/~light/index.html の「サブメニュー」見ながら作ってて困った事が起こりました。 ヒット枠を作り、オブジェクトアクションで設定するところまで来たのですが、オブジェクトアクション→基本アクション→・・ここから先のメニューがグレーのままで何も設定できないのです。 他のもので作ってみてもやっぱりオブジェクトアクションがききません。フレームアクションは難なくできるのですが・・。何か原因が考えられたら教えていただけないでしょうか。

  • ボタンのアクションスクリプトについて

    ボタンをクリックしたら指定のURLを開かせる、というときは、ボタンのアクションスクリプトに対して、 on(press){ getURL ("01.html"); } としますよね? これを「●●」という名前のボタンは「01.html」、というように一括で変更する方法はありますか? 最初は「01.html」だったけど、その後「../01.html」になった場合、ひとつひとつ選択して変えなくてはなりません。 もし、そういう方法があったら便利だなと思ったモノで。 使用しているのはFLASH5です。

  • FLASHメニューからHTMLを指定フレームに表示させることについて

    質問させて頂きます。 題名の通りなのですが、FLASHでメニューを作り、 それをcolsでフレーム分けしたHTMLの左フレームに 持っていき、右フレームにメニューから指示された コンテンツを表示させるということをしたいのですが うまくいきません。 右フレームには"main"と名前を付けておきます。 FLASHのボタンシンボルに対して on (press) { getURL("××.html", "main"); } とアクションを付け、更にすべてのメニューを1つの ムービークリップシンボルとして、 onClipEvent (mouseUp) { if (this.hitTest(_root._xMouse, _root._yMouse)) { menuno = math.ceil(this._ymouse/(this._height/_root.contents)); _root.move(menuno); } } とアクションを付けました。 技術的なことはよくわからず、FLASH本に載っていたものを 真似してみたものです。 本についていたCD-ROMでまず動作確認をしてみたときから うまくいってませんでした。 どうやったらうまくいくのか教えて下さい。 環境 winXP FLASHMX IE ver.6 よろしくお願いします。

    • ベストアンサー
    • Flash
  • テキストフィールドのフォーカス設定について

    どなたかご存知でしたら是非ご教示ください。 インスタンス名が「id」というテキストフィールドをステージに配置します。 1フレーム目に、   Selection.setFocus("_root.id"); というスクリプトを書きます。 これで、再生したらテキストフィールドにフォーカスが設定されると期待しているのですが、そうなりません。 そこで、ボタン用のムービークリップを作り、ステージに配置(インスタンス名:focusSetButton)し、   _root.focusSetButton.onRelease = function() {     Selection.setFocus("_root.id");   } というスクリプトを1フレーム目に書きます。 これでムービーを再生してもフォーカスは設定されませんが、「focusSetButton」をクリックすると、フォーカスが設定されます。 ユーザーのアクションを伴わない場合は「Selection.setFocus」は無効で、ボタンクリックのようなユーザーアクションが伴うと有効になるのは何故なんでしょうか? また、ユーザーアクションが伴わずにフォーカスを設定する方法はあるでしょうか? 動作環境はWindows XP ServicePack 2のFlash 8です。 この現象は、アプリケーション上での再生でも、フラッシュファイル単体での再生でも、HTML内での再生でも起きます。 何かヒントになるようなことでもかまいませんので、よろしくお願いいたします。

  • アクションスクリプト

    > /* クリックして特定のフレームに移動し、再生 特定のシンボルインスタンス上でクリックすると、再生ヘッドがタイムラインの指定フレームに移動し、そのフレームから再生が継続されます。 メインタイムラインまたはムービークリップタイムライン上で使用できます。 手順 : 1. 以下のコード内の数値 5 を、シンボルインスタンスのクリック時に再生ヘッドが移動するフレームの番号に置き換えます。 */ button_1.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndPlayFromFrame); function fl_ClickToGoToAndPlayFromFrame(event:MouseEvent):void { gotoAndPlay(2); } AS3CS5で上記のコードでボタンを押すたびに動くアニメーションを作成しています。上記ではフレーム2に移動になっていますが、例えば2、22、44に移動して欲しい場合どのように記述すれば良いですか??gotoAndPlay(2 22 44)等で試していますが上手くいきません

    • ベストアンサー
    • Flash
  • 携帯FLASHのスクリプト

    アクションスクリプト初心者です、質問よろしくお願いいたします。 ランダムでまばたきするなどの簡単なループアニメをflash4(MX)で書き出して、携帯で観覧できるアニメーションを作っています。 アクションスクリプトの勉強も兼ねて、そのループアニメに「1」ボタンを押すと花がフェードインして消える、と言ったボタン対応のアニメーションに挑戦中です。フレーム1でstopさせて、フレーム2にそれぞれインスタンス名をつけたシンボルを設置させています。ボタンにはこんな風に書いてみました↓ on (keyPress "1") { _root.hana.play(); } on (keyPress "2") { _root.hoshi.play(); } on (keyPress "3") { _root.heart.play(); パソコン上ではちゃんと動いてくれたのですが、flash4では対応していないスクリプトがあるようで携帯では動いてくれませんでした。 そこでお教え頂きたいのですが、このようなボタン(キー)に反応したアニメを作る場合flash4(flash lite)ではどのようにスクリプトを書いたらいいのでしょうか…? 携帯向けフラッシュを作成された事のある方、FLASH4に詳しい方、どうかご教授よろしくお願いいたしますm(__)m

    • ベストアンサー
    • Flash

専門家に質問してみよう