• ベストアンサー

mcのタイムライン制御

初歩的な質問で申し訳ないです。 _root  └mc1 この状態で、ムービー再生時に特定キーを押してmc1のタイムラインを再生する(10フレーム→15フレームへ…のように)にはどうすればよいでしょうか? いろいろ試しましたが、うまくいかなかったもので…

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

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

#1です。 Flash MX で Flash Player 6 でしたら, キーはムービークリップやボタンのしがらみから解放された Key オブジェクトのイベントハンドラメソッドを使うのが一般的(汎用的)かと思います。 仮に「mc1」内の <Aの動作> が フレーム1~フレーム10 までで, <Bの動作> が フレーム11~フレーム?? まであったとした場合で, 「mc1」 が存在するフレーム(_rootのフレーム)に書くスクリプト例です。 ------------------------------ // キー監視用インスタンス myKey を作成 var myKey = new Object(); // キーが押されたときの動作を定義 myKey.onKeyDown = function(){ // //(↓ムービープレビュー時の確かめ用) trace(Key.getCode()); // // もし押されたキーが「a」であれば if(Key.getCode() == 65){ // 「mc1」内タイムラインをフレーム1から再生 mc1.gotoAndPlay(1); // もし押されたキーが「b」であれば }else if(Key.getCode() == 66){ // 「mc1」内タイムラインをフレーム11から再生 mc1.gotoAndPlay(11); } } // myKey を Key オブジェクトのリスナーとして登録 Key.addListener(myKey); ------------------------------ 「制御」→「ムービープレビュー」で キーのコードを知ることもできます。 細かいこツッコミですが..., > バージョンはFlashMX、AS2、 Flash MX で ActionScript 2.0 を使うことはできませんよ。 「ファイル」→「パブリッシュ設定」で「Flash」タブを選択しても,ActionScript のバージョンが選択できないと思います。 ActionScript 2.0 が使えるようになった Flash MX 2004 以降では, Flash Player のバージョンを選択できるように ActionScript のバージョンも選択できます。 Flash MX ができた頃は,まだ ActionScript 2.0 というものは存在しなかったので, 実は ActionScript 1.0 というバージョンも存在しなかったのです。 ActionScript 2.0 では 「クラス」 という概念が全面に出されました。 またカスタムクラスを作ってそのクラスを import することが可能になりました。 あと 変数 や 関数 に型指定ができるようになりました。 ・ スクリプトの冒頭を ActionScript 2.0 風に書き換え // キー監視用にObjectクラスのインスタンス myKey を作成 var myKey:Object = new Object(); // キーが押されたときのメソッドを定義:戻り値なし myKey.onKeyDown = function():Void { カスタムクラスを使わない限り,ActionScript 1.0 も 2.0 も大差はないのですけどね。 それでもちょっとは違うんです。  

xsae
質問者

お礼

教えていただいたスクリプトでできるようになりました。 実はKeyオブジェクトのメソッドもネットで検索しつつ色々試していたんですが、他の命令時に「特定キーを押していない状態で…」といった動きを出していたため、それと干渉してうまくいかなかったのだと思います。 解説通りに良く理解することで、その他の命令も整理して、結果すべて書き換えて上手くいきました。本当にありがとうございました。 ASのVerは記憶間違えしてました…

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

その他の回答 (1)

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

「バージョン」は何でしょうか? こちらでバージョンを判断できる材料は,「_root」 1つしかありません。 「_root」という前にアンダースコア付きパスを書かれていらっしゃるところから, 「ActionScript 3.0 では "ない"」 ということと 「Adobe(Macromedia) Flash 5 以上を使用されている」 ということがわかるだけです。 つまり, Adobe(Macromedia) に勝手に限定すると, Flash 5,Flash MX,Flash MX 2004系,Flash 8系,Flash CS3,Flash CS4 のうちいずれかのバージョンをお持ちで, ActionScript 1.0 または ActionScript 2.0 をお使いで, Flash Player 3,4,5,6,7,8,9,10,及び Flash Lite 1.x,2.x,3.x のうちのいずれか用のSWFをパブリッシュしようとされている。 としかわからないわけです。 答えが無茶苦茶沢山ありすぎて答えようがありません。 以前は,回答文字数制限が今のように少なくなかったため, 次↓のように,それぞれの場合について回答できましたが...。 http://okwave.jp/qa/q4726752.html とにかく「バージョン」です。 無理なら無理で,「そのバージョンでは無理です」という回答ができますが, 現状のご質問からではそれすらできません。 あと, どこにスクリプトを書こうとされているかです。

xsae
質問者

補足

バージョンはFlashMX、AS2、Playerは6です。単純な質問なので、Verはどれでも通用すると判断し、記入を見送りました。 スクリプトを書く場所は上のmc1に書こうと思ったのですが、うまくいかないのでその場所も含めて質問しました。方法が沢山あるようなら、一例だけでも良いので、回答をおねがいします。 詳細を説明すると、 mc1は人型のもので、mc1のタイムラインにいくつかの動作を以下のように入れています。 1  2 ・・・ 10 ・・・ 15 ・・・17 ・・・ 20 | | | ・・・ <Aの動作    >   <Bの動作   > これを、再生時に例えばAのキーを押したら、Aの動作部分のタイムラインを動かす。Bのキーを押したらBの動作部分のタイムラインを動かす、ということをしたいのです。 前述したように、_root上にあるmc1にonClipEvent等のスクリプトを記述しようとしたのですが、まったく動作しない状況です。 以上ですが、もしよければご回答ください。

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

関連するQ&A

  • 特定のmcのフレームにきたときメインタイムライン制御

    AS初心者です。 今、メインタイムラインに配置したmc"main_mc"内のmc”mc1”の、 特定のフレームに来たとき メインタイムラインのフレーム移動をする、というスクリプトを書きたいのですが うまい行かずに困っています。 mc"mC1"のフレームアクションに _root.gotoAndPlay(20); と書きましたが、うまくいきません。 なんででんしょうか。。 もしお分かりのかたがいたらお教えいただけると幸いです 初歩的質問ですみません。。。 mac macbook os 10.4.11 flash cs4を使用しています。

  • Flash タイムライン上のMCへの移動

    おたずねします。 タイムラインの5フレームにあるムービクリップAを再生後、 タイムラインの2フレームにあるムービクリップBの 特定のフレームへ移動したいのですが、 パスの指定がうまいきません。 2フレームへの移動は _root.gotoAndPlay("2フレームのラベル名")で 移動できますが、そこに配置されたムービークリップの指定は どうすればいいのでしょうか。 _parentやthisを使用した 絶対パスや相対パスを調べましたが、どうもこの指定は 同フレーム上にある場合の指定のようなのかうまくいきませんでした。 それともこのような移動はできないのでしょうか。 教えていただけると大変助かります。 どうぞよろしくお願いいたします。

  • FLASHの同一タイムラインで、複数のムービークリップを順に再生したい

    ムービークリップを複数作成しました。(名前を仮にa_mc, b_mc, c_mcとします。) このムービークリップを順に再生していきたいので、同一タイムライン上の 1フレーム目にa_mc 2フレーム目にb_mc 3フレーム目にc_mc と配置し、タイムラインの最後のフレームに this.stop(); とスクリプトを書きましたが、a_mcの再生が終わったところ(=1フレーム目)で停まってしまいます。 1フレーム目の後、2フレーム目以降(b_mcとc_mc)を続けて再生するには、どのようにすれば良いのでしょうか?

    • ベストアンサー
    • Flash
  • mcが最後まで再生されるのを待って、on(press)を受けるようにしたい

    flash初心者です。 main_mcの中に、たくさんのmcを配置し、タイムラインに配置したボタンをクリックすると,mcが再生するよう作りました。 こんなかんじです。 on (press) { _root.main_mc.mc_017.gotoAndPlay(2); } フレーム1にはstop();が書いてあって 何の操作もしないときは再生しないようにしてあります。 そこまではできたのですが、再生中の間も、 ボタンをクリックするとmcの2フレームに戻り、再び再生されてしまいます。 最後まで再生されるのを待って、on(press)を受けるようにしたいのですが どうしたらいいでしょうか。 使用しているのはFLASHMX, mac os 10.4.11です。 初歩的な質問かも知れません。 ご教授いただけると幸いです。

    • ベストアンサー
    • Flash
  • mcの中のタイムライン指定

    シーン1フレーム1にあるmcの中にボタンを配置してそれを押すと、シーン1フレーム2にあるmcの中のタイムラインの指定をしたいのですが、わかりません。誰か分かる方お教えください。 お願いします。

    • ベストアンサー
    • Flash
  • 外部SWFファイルの中のMCのgotoAndPlayによるタイムライン制御にすて

    Flash8&WinXPでの環境でオーサリングしております。 質問なのですが、 _root.mc1_1_mc.mc1_2_mcに外部SWFファイル v2.swfをloadMovieします。 _root.mc1_1_mcのフレームアクションに function gotoF(){ パス+gotoAndPlay("goto_nextF1"); } _global.goto_cnt=0; _root.mc2_1_mcのフレームアクションに if(_global.goto_cnt=='1'){ this._parent.gotoF(); } v2.swfの中のMC,v2_mc1_mc.v2_mc2_mcのフレームアクションに if(_global.goto_cnt==0){ this.gotoAndPlay("goto_nextF2"); } _global.goto_cnt2=1; とします。 上記どちらとも、何かトリガーを作っても 外部swf v2.swfのフレームラベル"goto_nextF1",フレームラベル"goto_nextF2"に フレームを移動させることができません。 _global.goto_cntも参照されていないようです。 function gotoF(){ パス+gotoAndPlay("goto_nextF1"); } のパスかスクリプトが間違っているのでしょうか? また、 if(_global.goto_cnt==0){ this.gotoAndPlay("goto_nextF2"); } では、traceしてデバッグしても _global.goto_cntを参照していません。 この逆、v2_mc1_mc.v2_mc2_mcのフレームアクション の_global.goto_cnt2=1; を_root.mc1_1_mc.mc1_2_mcのフレームアクションで if(_global.goto_cnt2==1){ trace("ok"); } としてトリガーを作り確認しても、 これもまた参照されません。 大変無知でいささか恐縮ですが、 どなたかご教授頂けませんでしょうか。 どうぞ宜しくお願い致します。

  • マウスの座標

    メインのタイムライン1フレーム目です。ストップさせてます。 _rootの中央に、正四角形sikaku_mc(100フレーム)があります。 sikaku_mcの高さ半分より上に、マウスがステージの一番上まで動くにつれて、sikaku_mcが、徐々に再生されて_root._xが0の時、sikaku_mcがフレーム100に到達なるようにしたいのです。 徐々に再生させる事がどうしてもできません。 分かりにくい質問で申し訳ないのですが、宜しくお願いします。

  • Flash5:MCに取り込んだ外部swfの制御について

    Flash5にて作業中です。 長め(タイムラインの量)の外部swfファイルをいろんな場面で使い回したいと思っています。 その全タイムラインを通しで使用する場面もあります。 質問としては、タイトルに記した通りなのですが、 ムービークリップに取り込んだその外部swfファイルを、 ある一定部分(例えば3等分した真ん中)のみエンドレスで再生したりすることは、可能なのでしょうか? 「取り込んだ瞬間、指定のフレームから再生」し、 かつ「指定のフレームから指定のフレームへのアクション制御」は可能なのでしょうか? ご存じの方、よろしくお教え願います。

  • メインのタイムラインに戻るボタン

    同じような質問を幾つかあたってみたのですが上手くいかなかったので質問させていただきます。 FLASH8でFLASHを作成しています。 メインになるタイムライン上にムービークリップでウィンドウを作りました。 更にその中(ドラッグした時に一緒に動かす為、入れ子にしている)に、ウィンドウを閉じる為のボタンを作りました。 ウィンドウを閉じた状態にする為には、メインのタイムラインにある "main"というフレーム名の場所に戻らなければならないのですが、ボタンが反応せずウィンドウを閉じる事が出来ません。 現在ボタンには on (release) { _root.gotoAndStop("main"); } このアクションスクリプトを記述しています。

    • ベストアンサー
    • Flash
  • タイムラインを定期的にスタートさせるには?

    AS3.0でCS5です。 下記のようにタイムラインをコントロールする為のスクリプトを教えてください。 例えば、フレームは1フレームから100フレームまであるとします。ムービーが読み込まれてタイムラインが1から100まで移動します。その100フレームで一旦タイムラインが停止します。停止後、例えば3分後に、再びフレーム1に戻り、ムービーがスタート。その後同じように100フレームで停止…その後3分後に…と言う感じで、3分毎にムービーがスタート…1フレームに戻り100フレームで停止…それをエンドレスで行いたいのです。 その場合、1フレーム(又は100フレーム)に記述するスクリプトを教えてください。 よろしくお願い致します。

    • ベストアンサー
    • Flash