• ベストアンサー

ムービーを操作する方法について

noname#35109の回答

  • ベストアンサー
noname#35109
noname#35109
回答No.3

#1、2です。 >> ドラッグ中は停止状態にしたいのですが、 >> どのようにすれば良いのでしょうか? と書かれていますがドラッグ中は停止状態なのですが… と言うよりドラッグ中はドラッグによってアニメーションは前に行ったり後に行ったり動きますが, ドラッグ後,マウスを停止させるとアニメーションも停止しますよ。 ムービークリップの中にムービークリップを入れて動かしたり, ActionScriptで動かしているものは止まりません。 何でしたら,on (press)の所 ----------------- on (press) { _parent[mov].stop(); this.startDrag(true, l_point, this._y, r_point, this._y); this.onMouseMove = function() { now_frm = Math.round((this._x-l_point)*move_spd); _parent[mov].gotoAndStop(now_frm); }; } ---------------- 上のように 2行目 _parent[mov].stop(); を入れてみますか。 結果はあまり変わらないような気もしますが。 あと,午前中件で調べていたら,何やらこんなページを発見しました。 「イベントハンドラメソッドはdeleteで消せ!」 http://f-site.org/articles/2004/05/22140833.html う~ん,最後まで読むと結局どっち??? という感じになりますが, このメインの方の意見の通りにすると,最後のかたまりの2行目は delete this.onMouseMove; が良いということなのでしょうね。 かなり前に,onEnterFrame を消したいとき, this.onEnterFrame = undefined; と this.onEnterFrame = null; のどちらにすべきか悩んだことがあって,そのときGoogleで検索して, this.onEnterFrame = null; の方がヒット件数が多かったので,以降同じような場所で null を使うようにしていたのですが, 本当は,delete this.onMouseMove; が良いのかもしれません。 ちょっとずつ訂正すると,「結局どれ?」となるので,最初から全文を書くと次のようになります。 -------------------------- onClipEvent (load) { //アニメMCのインスタンス名の設定("" 内は可変) mov = "mc_movie"; //バーのインスタンス名の設定("" 内は可変) bar = "mc_bar"; l_point = _parent[bar]._x; r_point = l_point+_parent[bar]._xscale*2; this._x = l_point; } onClipEvent (enterFrame) { total_frm = _parent[mov]._totalframes; move_spd = total_frm/(_parent[bar]._xscale*2); this._x = l_point+(_parent[bar]._xscale*2)/total_frm*_parent[mov]._currentframe; } on (press) { _parent[mov].stop(); this.startDrag(true, l_point, this._y, r_point, this._y); this.onMouseMove = function() { now_frm = Math.round((this._x-l_point)*move_spd); _parent[mov].gotoAndStop(now_frm); }; } on (release, dragOut) { delete this.onMouseMove; _parent[mov].play(); stopDrag(); } -------------------------- 最後のかたまりの1行目を上のように on (release, dragOut) とした場合は,「目盛り 兼 コントローラー」の ┃(線) の横に大きめに透明な塗りを作ってください。 こんな感じ↓かもっと広く。 ┌──┳──┐ │透明┃透明│ └──┻──┘ でないと,「目盛り 兼 コントローラー」がマウスの動きについて行けなくなったとき, dragOut になってしまいます。 最初に書いた on (release) では透明部分も少なくでき,問題ない場合もありますが, 「目盛り 兼 コントローラー」がムービーの縁に近い所にあった場合, マウスをプレスしたまま,マウスをムービー外に出す可能性が大きくなります。 マウスをプレスしたまま,マウスをムービー外に出すと delete (this.onMouseMove); が効かなくなります。 従って, on (release, dragOut)  で 「目盛り 兼 コントローラー」の横の透明部分を増やすのが無難かもしれません。

gonagona
質問者

お礼

大変わかりやすくご説明いただき、本当にありがとうございました! なるほど、透明な塗りがミソなんですね(^^)/ 全て上手くいきました! またご迷惑をお掛けすることもあると思いますが、 そのときはどうぞ宜しくお願いいたします。

関連するQ&A

  • Flashでムービークリップを常に上に表示する方法

    Flashの初心者で、次のことにつまずいています。 初心者のためにわかりやすく教えていただけたら助かります。 複数のムービークリップ(MC)があるとします。 その中のMCの1つをドラッグして他のMCに重なったときに、ドラッグしたMCが常に他のMCの上に表示されるようにしたいのですが・・・。 どのMCをドラッグした場合でも、他のMCの上に表示されるようにしたいです。 Flashのバージョンは、CS5.5で、アクションスクリプト2.0を使用しています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FLASHで作ったムービーをクリックしてから再生するように設定したい

    ごらん頂有難う御座います。 DREAMWEAVERを使ってホームページを作っております、 その中にFLASHで作ったムービーを挿入し、そのムービーをクリックしてから再生をしたいのですがなかなかうまくいきません。 ムービーの最初のフレームをボタン・シンボルにして、そのボタンにアクションスクリプトを入れてもエラーが出てしまいます。 ちなみに on (press) { this.play(); } と記述しました。 半日この件で潰れてしまいました、宜しくお願い致します。

  • 深い階層でのムービークリップの操作について

    関連した質問で恐縮です。 ・シーン1   ┗Thumb_nail(ムービーインスタンス)     ┗スクロールバー( sc_ bar )     ┗ sheet(ムービーインスタンス)       ┗target(画像読み込み用ダミームービーインスタンス) targetを複製しながらJPEGファイルを読み込んでいます。(ファイルが存在するまで) そのScriptは全てThumb_naliのタイムラインのアクションです。 <1フレーム> var i = 1 ; var e_flg = 0 ; function Sheet_Scrolling() { sheet._x = sc_bar.getScrollPosition()*(-1) + 0 ; } sc_bar.setChangeHandler("Sheet_Scrolling"); <3フレーム> var fileload:LoadVars = new LoadVars(); fileload.load("b"+i+".jpg"); fileload.onLoad = function(success:Boolean) {  if (!success) {   e_flg = -1;  }  else {   e_flg = 1 ;  } }; <5フレーム> switch(e_flg ) {  case 0:   gotoAndPlay(4) ;   break ;  case 1 :   sheet.target.duplicateMovieClip("b" + i, i) ;   sheet["b" +i].loadMovie("b" + i+ ".jpg") ;   sheet["b" +i]._name = "b" + i ;   sheet["b" +i]._x += (i - 1) * 90 ;   i++ ;   e_flg = 0 ;   gotoAndplay(3) ;   break ;  case -1:   sc_bar.setScrollProperties(50, 0, (i-1)*90-360);   stop() ;   break;  default:   break ; } ここからが本題なのですが、読み込んだJPEGが押下された時のアクションはどこでどのように記述するのかご教授願えませんでしょうか?。(試した内容は文字数制限で書けません。)

    • ベストアンサー
    • Flash
  • FLASHでボタンを押すと、FLASHムービーが再生から停止までいくようにしたいです。

    FLASHの初心者です。 以下の物が作りたくてチャレンジをしております。 構成的には、一個の画面と、一個のボタンがあり、 あらかじめFLASHムービーを何個か作り、 一個のFLASHファイルに読み込んで、 ボタンを押すと一個目のムービーが再生、最終フレームで停止、 もう一回ボタンを押すと次のムービーが再生、最後… という具合にしていきたいです。 おそらくアクションスクリプトを使用して作らなければならないと 思うのですが、うまくできないのです… ついでにもう一つ、お聞きしたいことがあります。 フレーム数を右下に常に表示させたいです。 この方法も教えて欲しいです。 使用ソフトはFLASH CS3で、アクションスクリプトは3.0を使っています。 説明下手ですみません… よければ誰か助けてください>△<

  • 一定時間経過後、ムービー再生する方法を教えていただけますでしょうか?

    FLASHのAction Script(setInterval?)について質問です。 現在タイムラインに4つのラベル(A,B,C,D)を指定して、順次A→B→C→D→A→(以下省略)へとループするムービーを制作しております。 次のラベルへと進む時間間隔をスクリプトで制御する方法を教えていただけますでしょうか。 例:) A→(10秒静止後)→B  上記の10秒となっている部分をスクリプトにて制御出来ればと思っております。 また、上記のムービー上に配置してあるボタンにオンマウスで、上記のカウントをリセットしてムービー停止、 マウスアウトで次のラベルへ進める方法も併せて教えていただきたくお願い申し上げます。 何卒、宜しくお願い致します。

  • ムービーのコントロールについて教えてください。

    ムービーのコントロールについて教えてください。 私は、フラッシュCS5を使用し、アクションスクリプト3.0で記述しています。 ムービーコントロールについて教えていただきたくてこちらに書き込みをさせていただきました。具体的には、ステージにムービー(インスタンス名:FLV_Play01)を読込み、そのムービーの上に再生ボタン(インスタンス名:Btn_1)を設置しました。添付画像をご覧ください。 ステージのタイムラインの1フレームに下記のようにスクリプトを記述しました。 import flash.events.MouseEvent; Btn_1.addEventListener(MouseEvent.CLICK, fl_ClickToPlayVideo); function fl_ClickToPlayVideo(event:MouseEvent):void { FLV_Play01.play(); } function removeMC(ev:MouseEvent):void{ removeChild(Btn_1); } Btn_1.addEventListener(MouseEvent.CLICK,removeMC); この記述ですと、ムービーの再生ボタン(インスタンス名:Btn_1)をクリックするとムービー(インスタンス名:FLV_Play01)がスタートして再生されます。再生と同時に再生ボタンが消去され、ムービーだけの表示となります。ただ、このスクリプトですと、ムービーが終了した後には再生ボタンが再表示されない為に繰り返し見る事が出来ないのです。 そこでですが、ムービーの再生終了後に再び再生ボタンを表示させるようにしたいのです(ユーチューブのようなイメージです)。そのためのスクリプトを記述したいのです。どなたか解る方がいましたらスクリプトの記述内容を教えてください。よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 2つのムービークリップをスクリプトを利用して同時に止めたいのですが、、。

    はじめまして。私はスクリプトは初心者なのですが、2つのムービークリップが同時に進行してまして、同じタイムラインの長さなのですが、ずれないように同じ長さにしております。そのひとつがボタンになっているのですが、このボタンにロールオーバーした時、またはムービークリップのほうにロールオーバーした時に両方ともに一時停止してほしいのです。ロールアウトしたら2つとも動き出し、つぎのムービークリップに行ったとき、同じようにボタンも色が変わって常に同時進行してる状態を作りたいのですが、どうすれば良いか、だれか詳しい方教えていただけないでしょうか。よろしくお願いいたします。

  • Quick time ムービーのコントロールを消すには?

     Quick time Player のムービーで動画を再生しているのですが、画面下のコントロール(再生や一時停止などができるバー)を消すことができません。  再生した動画を見ているとこれが画面にかぶさっていて邪魔なのですが、これを隠すにはどうしたらいいでしょうか?   バージョンは2です。それから画面を縦にデジカメで撮影したものを再生すると横になってしまうのですが、これをPC上で直す方法はありますか?  

  • ムービークリップを一定時間ごとに実行したい。

    ムービークリップを読み込むと、タイムラインに関係なく動き続けるかとおもいますが、それを時間、もしくはフレームごとに動きを止めて再度動かすような動きはスクリプトでどのようにかくのでしょうか? 作りたいアクションは、画面左からスライドして入ってきて、真ん中で減速しながら停止、3秒ほど待って、今度は加速しながら画面右にスライドしていく動きを作りたいです。 flashMx2004、windowsXPです。

    • ベストアンサー
    • Flash
  • 回転運動の減速停止方法

    こんにちは。以下の動作のアクションスクリプトを教えて 頂きたいと思い、書き込み致しました。 「回転 停止」というキーワードで過去質問を検索しましたが、 見つけることができませんでした。 よろしくお願い致します。 --------------------------------- http://hakuhin.hp.infoseek.co.jp/main/as/move.html#MOVE_04 ↑こちらで紹介されております「円の動きを作りたい 」で、  ある一定の角度(例えば300度とか)まで回転したら停止する  動きを制作したいと思っております。 また、停止する際に、 http://hakuhin.hp.infoseek.co.jp/main/as/move.html#MOVE_02 ↑こちらで紹介されております「減速(摩擦)する動きを作りたい 」  で、減速させて停止する動きが付けられればと思っております。 --------------------------------- 「300度回転してから減速して停止」という動きであれば、 上記サイトで公開されておりますスクリプトの形式でなくても 問題ありません。 お手数ですが、よろしくお願いします。 最後にこちらの環境です。 ------------------------ アクションスクリプト経験 :回転運動、曲線運動などは初めて挑戦。 マシン環境 :WinXP FLASH8 ------------------------ 以上、よろしくお願い致します。

    • ベストアンサー
    • Flash