ループ再生のflashをタイムラインの途中から再生する方法

このQ&Aのポイント
  • AdobeのFlashを使って他人の作ったflashの編集をする事になりましたが、ActionScriptの知識が不足しており困っています。特に、ループ再生のflashをタイムラインの途中から再生する方法を知りたいです。
  • 現在、ループ再生のflashは最初のフレームから再生されていますが、''画像が表示''の部分から再生を開始するように変更したいです。具体的には、アルファの白い画面→''画像が表示''→アルファの白い画面→ループ、頭に戻るという動きの中で画像が1→2→3と変化するようにしたいです。
  • ActionScriptのコードには、ループのカウント変数であるloop_cntとmcimg(イメージ変数)のフレーム数を比較し、カウント変数が未定義またはフレーム数を超えた場合はカウント変数を1に設定するという処理が含まれています。ただし、詳細な解読ができていないため、具体的な命令方法はわかりませんが、この部分を変更することで目的を達成できる可能性があります。初めての投稿のため、記述に至らない点があるかもしれませんが、どうぞよろしくお願いいたします。
回答を見る
  • ベストアンサー

ループ再生のflashをタイムラインの途中から再生

AdobeのFlashを使って他人の作ったflashの編集をする事になったのですが、ActionScriptについての知識がほとんどなく困っています。 アルファの白い画面→''画像が表示''→アルファの白い画面→ループ、頭に戻る この動きの繰り返しの中で画像が1→2→3と変化します。 (タイムラインの1フレーム目で画像が切り替わるようになっています。) asの部分にはこう書かれています -------- if( loop_cnt == undefined || loop_cnt>mcimg._totalframes) {loop_cnt = 1;} --------- (内容と無関係だったらすみません><解読は出来ていない状態です) このflashの始まりを、上記の''画像が表示''の部分から始まるように変更したいです。 (flashを途中から再生させる→ループで頭に戻る→その後はそのまま全てのタイムラインをループ) ActionScriptでこのような命令をする方法があれば教えて頂きたいのですが・・・ 投稿も初めてなので記述に至らない点が多いかと思いますが、何卒よろしくお願い致します。

  • Flash
  • 回答数2
  • ありがとう数3

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

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

#1で回答した者です。 #1の回答では > if( loop_cnt == undefined || loop_cnt>mcimg._totalframes) > {loop_cnt = 1;} これがご質問の本題に関係があるものとして そこからムービーの構造やしくみを私が勝手に想像した上での回答です。 仮にご質問中の > if( loop_cnt == undefined || loop_cnt>mcimg._totalframes) > {loop_cnt = 1;} これはなかったものとします。 そして > (flashを途中から再生させる→ループで頭に戻る > →その後はそのまま全てのタイムラインをループ) だけにシンプルに答えるとします。 その場合はスクリプトを次のようにすれば良いと思います。 再生させるタイムラインのフレーム1に書くスクリプトです。 (_rootを再生させるなら_rootのタイムラインのフレーム1に書くスクリプトです。) (ムービークリップ内を再生させるならムービークリップ内のタイムラインのフレーム1に書くスクリプトです。) ----------------------------------- //再生開始フレームを設定(4は例えばの例) var start_frm = 4; //もし変数 play_flag が未定義であれば if (play_flag == undefined) { //変数 play_flag を true と定義 var play_flag = true; //このタイムラインをこのフレームで停止 this.stop(); //---ロード待ち処理------ //毎フレーム実行するメソッドを定義 this.onEnterFrame = function() { //このタイムラインが指定フレームまでロードされたら if (this._framesloaded>=start_frm) { //指定フレームより再生開始 this.gotoAndPlay(start_frm); //毎フレーム実行するメソッドを削除 delete this.onEnterFrame; } }; } ----------------------------------- #1 と同じく,一応 Flash MX 以上(MX,MX2004,8,CS3,CS4,CS5,CS5.5 のいずれか)をお持ちで ActionScript 1.0 (または 2.0) を使う設定で Flash Player 6 以上用の SWF をパブリッシュするものと想定しています。

halu_e
質問者

お礼

お礼を書く場所を間違えてしまいました>< 本当にありがとうございました!

halu_e
質問者

補足

情報が足りない中で的確な推測、丁寧なご回答本当にありがとうございます。 Flash CS3,ActionScript 2.0を使っています。 最初にお伝え出来ず申し訳ございませんでした。 実は問題のflashには多くのムービークリップやボタンなどが組み込まれており、それらの実行のタイミングが1フレーム目に指定され、尚かつ全体のアルファと連動している為、モーショントゥイーンで作り直す事ができずに困っていました。 色々調べても類似の記事が無かった為、他の人の参考にもなるようなるべくシンプルな質問内容にしようとした事で、逆に手間を取らせてしまいました (flashを途中から再生させる→ループで頭に戻る→その後はそのまま全てのタイムラインをループ) この質問にお答え頂いた#2の回答が非常に参考になりました。 #2ご回答の通り書き足してflashを書き出した所 希望の 途中から再生し、全ループするflashができました。 本当にありがとうございました。

その他の回答 (1)

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

とりあえず, 具体的状況(ムービーの構造など)がわかりません。 以下は私が勝手に推測した(決めた)状況での回答です。 また,お持ちの Flash のバージョンも ご使用の ActionScript のバージョンすらも書かれていらっしゃらないため本来は全く回答できません。 が,mcimg._totalframes と書かれていらっしゃる部分から少しは推測できます。 この部分から ActionScript のご使用バージョンは少なくとも 3.0 ではないということがわかります。 またこの部分から ステージ上には内部が複数フレームからなる「mcimg」というインスタンス名を付けたムービークリップが存在していて ActionScript でその「mcimg」内の表示フレームを切り替えているのではないかとも推測されます。 ムービークリップ「mcimg」の内部の各フレームには 「単なる画像」が置いてあるだけであるものとします。 つまり ムービークリップ「mcimg」の内部の各フレームには 内部で フェードイン/アウト するムービークリップは置いていないものとします。 (つまり,ムービークリップ「mcimg」の内部には フェードイン/アウト する仕組みが何も仕組まれていないものとします。) また,ムービークリップ「mcimg」を フェードイン/アウト させること以外のスクリプトは存在しないものとします。 その場合 スクリプト全文を次のようにすれば > ''画像が表示''→アルファの白い画面→ループ のようなものができると思います。 ----------------------------------- //フェードアウト/インさせるスピードを設定 var fade_spd = 4; //完全表示させる秒数を設定 var show_sec = 2.5; //変数 loop_cnt が未定義であれば if (loop_cnt == undefined) { //変数 loop_cnt の値を1にする loop_cnt = 1; //±を決める変数を用意 plus_minus = -1; //「mcimg」内の再生を停止 mcimg.stop(); //「mcimg」のアルファを100にする mcimg._alpha = 100; // //繰り返して遅延実行 var ID = setInterval(function () { //関数fadeOutInを毎フレーム実行 mcimg.onEnterFrame = fadeOutIn; //遅延実行の繰り返しをやめる clearInterval(ID); }, show_sec*1000); } //フェードアウト/インさせる関数を定義 function fadeOutIn() { // //「mcimg」をフェードアウト/イン mcimg._alpha += plus_minus*fade_spd; // //「mcimg」のアルファが0以下になれば if (mcimg._alpha<=0) { //loop_cnt の値が「mcimg」内のフレーム数以上になれば if (loop_cnt>=mcimg._totalframes) { //loop_cnt の値を1に戻す loop_cnt = 1; } else { //それ以外は loop_cnt の値に1を加算 loop_cnt++; } // //「mcimg」内のフレームをloop_cntフレームに進めて停止 mcimg.gotoAndStop(loop_cnt); //±を決める変数を+にする plus_minus = 1; //「mcimg」のアルファが100以上になれば } else if (mcimg._alpha>100) { //関数fadeOutInを毎フレーム実行するのを解除 delete mcimg.onEnterFrame; //±を決める変数を-にする plus_minus = -1; // //繰り返して遅延実行 ID = setInterval(function () { //関数fadeOutInを毎フレーム実行 mcimg.onEnterFrame = fadeOutIn; //遅延実行の繰り返しをやめる clearInterval(ID); }, show_sec*1000); } } ----------------------------------- 一応 Flash MX 以上(MX,MX2004,8,CS3,CS4,CS5,CS5.5 のいずれか)をお持ちで ActionScript 1.0 (または 2.0) を使う設定で Flash Player 6 以上用の SWF をパブリッシュするものと想定しています。 (例えば Flash Lite 1.1 用SWFパブリッシュ や Flash 5 使用などは想定外) ただ思うのですが... 仮にこれだけのことをするだけであるなら ActionScript など使わず モーショントゥイーン で普通に(ちゃんと)作れば良いだけだと思いますが。 また上記で回答したものとは全く違うものを作成されている可能性も大大大です。 その場合は悪しからず。 ~#2へ続く~    

関連するQ&A

  • FLASHのループ再生を止めたい

    こんにちは。 FLASHを作って最後の画像で止めてループように、loop="false"を使いました。 たしかに、最後の画像でとまるのですが、 ブラウザを再読込をすると FLASHがループしてしまいます。 右クリックでループ再生のチェックがはずれません。 なぜ再読込したときのみ、ループするのでしょうか。 どこかに設定があるのでしょうか。 よろしくお願いします。

  • AS3でアニメーションを回数指定でループする方法

    Adobe animate CCを使用しています。 ActionScript3.0で、アニメーション全体を 「3回ループさせて、3回目が終わったらアニメーションをストップ」 させる必要があるのですが、 ActionScript初心者なので、this.stopなどごく簡単なものしか分かりません。 ネットで色々調べている中で出てきた下記コードは ActionScript2.0あたりで書かれたものなのか、 当然のことながら、Adobe animate CCのアクションに貼り付けても うまく動作しませんでした。  //最初の1度だけ、ループカウンタを初期化  if( loop_cnt == undefined )  {   loop_cnt = 1;  }  //ループカウンタを更新  loop_cnt++;  //3回ループした場合は停止  if( loop_cnt > 3 )  {   loop_cnt = 1;   stop();  }  //それ以外はループを継続  else  {   gotoAndPlay( 1 );  } 上記コードをどのように書き直せば Adobe animate CCでうまく動くでしょうか。 ご存知の方がおられましたら、ご教授いただけないでしょうか。 宜しくお願い致します。

  • FLASHでループ再生を制限するAS

    Flashで音楽に合わせループ再生するアニメーションを作っています。 Web等で調べたActionScriptを使い音楽に合わせた回数で止まるように入力したつもりですが、止まらず、またループ再生してしまいます。 どのような記述をすればよろしいのでしょうか? 複数のレイヤーがあるので、1フレーム目に var loop_cntA:Number = 0; とloop_cntAと変数を宣言して、 最後のフレームに loop_cntA = Number(loop_cntA)+1; if (Number(loop_cntA)<25) { gotoAndPlay(1); } else { stop(); } と入力し24回目までループするように設定したつもりです。 しかし、止まってくれず何度もループしてしまいます。 どのように記述するのが正しいのでしょうか? ご指導お願い致します。

  • Flash3.0 ループ再生について

    質問主は・・・ *FlashCS5を、感覚+Flashサイトを見てほとんど知識のないまま使っております。 *その上Actionscriptが苦手でほとんど手をつけておりません。 *感覚的には例えば「あるボタンを押すとURLを別窓で開く」程度のものしか作れません。 質問は以下のとおりです。 A → B → C と画像を切り替えて、ループ再生させたいのですが、 ABCともに、再生終了時には、ゆっくりとアルファが100→0になるようにしています。 そのアルファが100の時点から、次の画像が始まるようにかぶせています。 A→→→→100→0        B→→→→100→0              C→→→→100→0 わかりにくいですが図のようなイメージです。 http://www.hitachi.co.jp/ (この日立のサイト様を手本にしています。) しかしまぁ当たり前なのですが、ループ再生をするとなると、Cの終りがAの頭にかぶっているようにならないのです。 A→→→→100→0        B→→→→100→0              C→→→→100→0                     A→→→→100→0                            B・・・・・・・・・・・ 上図のようにしたいのですが・・・ Actionscriptは使っていないのですが、やはり使わないと不可能なのでしょうか? となるとgotoandplayなどを使うのでしょうか? そのあたりもよくわかっておらず・・・ 詳しく答えて頂けると嬉しいです。 また、Actionscriptなどのプログラム言語は、みなさんどうやって勉強されたのでしょうか? 構造を理解するのが本当に苦手で・・・とっつきやすい方法があれば、それも教えていただけると嬉しいです。 ちなみに書籍を読んで只今勉強しております。『速習WebデザインActionscript』 林拓也さん著 3/4ほど実践しながら読み進めていますが、なぜか身についてる感じがしません(泣 最後に、過去の質問ももちろん見てみました。ですがどれも微妙に違うのです。 微妙に違うと、その変え方がわからないため自分では解決できなかったので、質問させて頂きます。 長文失礼しました。どうぞ宜しくお願い致します。

    • ベストアンサー
    • Flash
  • Flashでタイムライン表示割合を小さくしたい

    Flashでタイムラインが1000フレーム、レイヤー数が100近くなったときによく感じるのですが、 タイムライン内のレイヤー表示、フレームの表示数をもっと小さくできないものかと思っています。 以前にウェブで公開されていたflaファイルを開くと、 タイムライン表示が非常に細かくて、今の私の求める表示画面に近かったのですが、 それに切り替える方法をご存知でしたら教えてください。

    • ベストアンサー
    • Flash
  • flash actionscriptとタイムライン

    flash CS4 Xpでの開発環境です。 メインのタイムラインとムービークリップ自身が持つタイムラインの二つのラインがあります。メインのタイムラインは5fで構成されており、1Fずつキーフレームが設置してあります。 メインのタイムライン上にアクションスクリプト 1F目 var flag=0; stop(); if(flag=1){gotoAndPlay(2)} と書かれています。 ムービークリップはメインのタイムライン上の1F目に設置してあり,ムービークリップのタイムラインは60Fで構成されていて、60F目にactionscript flag=1; と書いています。 ムービークリップの動きがすべて終わってから、メインのタイムラインを2F目に進めたいのですが、現状ではすぐに2F目にうつってしまうような感じになってしまっています。 どこがいけないのでしょうか? もし知っている方がいましたらご教授いただきたいです。 よろしくお願いします。

  • FLASHのタイムライン表示について

    はじめまして、こんにちは。 FLASHを使い始めてこれからアニメーションなどを作りたいと思い、 色々調べているとタイムラインの場所に数字があることを知りました。 この数字はどうすれば表示できるようになるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flash cs4 ランダム再生

    Flash初心者です。 やりたいことはホームページ上でアニメーションを再生させる際に、複数パターンのアニメーションをページをリロードするたびにランダムに切り替えるということです。 Flashにてアニメーションのタイムラインを複数パターンつくり、ランダム再生をActionScriptで制御するものを作成したいと思います。 アニメーションのタイムラインを作成しムービーシンボルとしたものを複数作成し、それをシーン1のタイムラインにて各フレームに配置して、1フレーム目にActionScriptにてgotoAndStop(ランダムフレームの記述?);とすればいいのかなと思っているのですが、正しいでしょうか? 現状ではアニメーションのムービーシンボルは必要なパターンだけ作成しました。 シーン1のタイムラインに配置まではしたのですが、ActionScriptの記述が素人なものでさっぱりわかりません。 どなたか教えていただけませんか? 自分なりにやってみたのですが、ランダム関数(?)以前にgotoAndStop()すら思うようにいきませんでした。 Flashはcs4を使用しております。ActionScript3.0のプロジェクトにして添付画像のように1フレーム目に gotoAndStop(10); としてみたのですが、パブリッシュしたswf ファイルは真っ白のまま何も動いてくれません。 gotoAndstop(10); としてみたらstopせずにタイムラインを再生しているようで、各アニメーションの最初のフレームだけが切り替わるものになってしまいました。 ともにコンパイルエラー 1180:未定義である可能性が高いメソッドgotoAndstopの呼び出しです といわれます。 ActionScriptが2.0と3.0とどちらがいいのかもわかってない状態ですが、ご教授願います。

    • ベストアンサー
    • Flash
  • 【Flash】 Suzuka での作成についてです

    「Suzuka」のFlash作成のフリーソフトで・・・ 最近、やっと、スライドショー作成とトゥイ~ンで動かす事が出来るようになりました。 それで、今チャレンジしている事は、青空雲の背景画像などの1枚の画像で、左から右へと横に無限ループなんですが 1枚の画像を複製(同じ画像)して2枚使用で、1枚の画像をタイムラインを設定してトゥイ~ンで動し 次に続けて2枚の画像を追加し、1枚の画像のタイムラインの続きタイムラインを設定しトゥイ~ンで動し 2枚の画像のタイムラインイメージ的には・・・           1     10      20    ★  30      40    1枚目の画像 □□□□□□□□□□□□           2枚目の画像                   □□□□□□□□□□□□ こんな感じでやってみたのですが、プレビュで確認してみると ★のところで1枚目の画像と2枚目の画像の間で一部が空白(白色)になりうまい事つながりません。 また、2枚目の画像のスライドが終わり、1枚目がループになる時も一部が空白(白色)になりうまい事つながりません。 ちなみに、動作はちゃんと左から右へと横にとスライドはしてますが、ループ的にはダメです。 どうやったら、うまい事、一部が空白(白色)にならずに、画像が流れるようにつながり無限ループができるのでしょうか? 自分なりに色んなサイトを検索して「Suzuka」での無限ループに関した事を調べましたが、わかりませんでした。 何方か出来るだけ詳しく教えて下さい。宜しくお願いします。 非常に困ってます。 【参考】 理想のイメージとしては、http://book.mycom.co.jp/support/e5/actionscript10/ このサイトにある 「Chapter13 その他のバリエーション」の項目の「13-01 無限ループ背景」で紹介されている Flashマークのアイコンクリックで見れる無限ループのFlashのようにしたいのです。

  • 【Flash】 Suzuka での作成についてです

    「Suzuka」のFlash作成のフリーソフトで・・・ 最近、やっと、スライドショー作成とトゥイ~ンで動かす事が出来るようになりました。 それで、今チャレンジしている事は、青空雲の背景画像などの1枚の画像で、左から右へと横に無限ループなんですが 1枚の画像を複製(同じ画像)して2枚使用で、1枚の画像をタイムラインを設定してトゥイ~ンで動し 次に続けて2枚の画像を追加し、1枚の画像のタイムラインの続きタイムラインを設定しトゥイ~ンで動し プレビュで確認してみると ★のところで1枚目の画像と2枚目の画像の間で一部が空白(白色)になりうまい事つながりません。 また、2枚目の画像のスライドが終わり、1枚目がループになる時も一部が空白(白色)になりうまい事つながりません。 ちなみに、動作はちゃんと左から右へと横にとスライドはしてますが、ループ的にはダメです。 どうやったら、うまい事、一部が空白(白色)にならずに、画像が流れるようにつながり無限ループができるのでしょうか? 自分なりに色んなサイトを検索して「Suzuka」での無限ループに関した事を調べましたが、わかりませんでした。 何方かできれば詳しく教えて下さい。宜しくお願いします。 非常に困ってます。 【参考】 理想のイメージとしては、http://book.mycom.co.jp/support/e5/actionscript10/ このサイトにある 「Chapter13 その他のバリエーション」の項目の「13-01 無限ループ背景」で紹介されている Flashマークのアイコンクリックで見れる無限ループのFlashのようにしたいのです。

専門家に質問してみよう