• 締切済み

複数のクリックボタンにより再生と停止場所を指定する方法

複数のボタンを用意し、クリックするボタンにより異なるフレーム数で停止たいと思っております。 停止したいフレームごとにstop();を入れると、そこで毎回止まってしまうのでボタン毎に停止場所を指定しようと、以下のように試してみましたが、出来ませんでした。 停止場所をラベルでも指定してみましたが、出来ませんでした。 stop(); _root.next1.onRelease = function() { gotoAndPlay(5); this.stop(10); } _root.next2.onRelease = function() { gotoAndPlay(5); this.stop(20); } どなたかお考えのあるかたご教授いただけますと幸いです。 当方 Flash8 ActionScript2.0 を使用しています。

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

みんなの回答

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

何でも良いので1つの変数を用意して, 押すボタンによってその変数に代入する値を変えてやって, stop() させたいフレームでその変数の値を判定すれば良いと思います。 stop(); var HENSUU:Number; // ↓フレーム10 でストップさせたいボタン _root.next1.onRelease = function() { HENSUU = 10; gotoAndPlay(5); } // ↓フレーム20 でストップさせたいボタン _root.next2.onRelease = function() { HENSUU = 20; gotoAndPlay(5); } そして, フレーム10 には if(HENSUU == 10){ stop(); } フレーム20 には if(HENSUU == 20){ stop(); } 変数は Number(数) にしていますが,別に String(文字) であってもかまいません。 何でも良いのです。 値も何でもかまいません。 ボタンで指定した通りの値であれば止まるようにすれば良いです。

invisist
質問者

お礼

ご丁寧なご回答ありがとうございました。問題なく動きました。完璧です。感謝感激しております。

関連するQ&A

  • ボタンをクリックして画面遷移させる方法について

    flash初心者です。 cs4でAS3.0を使っています。 ボタンをクリックするとgotoAndPlayでラベルの指定してあるフレームに飛ぶように設定したいのですが、クリックしても全く反応してくれません。 ボタンは「next」と「top」の2つを画像(ボタンシンボル)で作成しています。 アニメーション後にこの2つのボタンが出て、それぞれをクリックすると別のアニメーションに飛ぶという流れを考えています。 記述したAS3.0は下記です。 --------------------------- stop(); var topBtn01:SimpleButton = new SimpleButton(); var nextBtn01:SimpleButton = new SimpleButton(); topBtn01.addEventListener(MouseEvent.CLICK,top01Click); nextBtn01.addEventListener(MouseEvent.CLICK,next01Click); function top01Click(event:MouseEvent):void{ gotoAndPlay("top01"); } function next01Click(event:MouseEvent):void{ gotoAndPlay("next01"); } ----------------------------------- それぞれのボタンにインスタンス名を「topBtn01」「nextBtn01」とつけています。 ちなみに、エラーは何も出ていません。 ただ、変数を定義しているはじめの2~3行目を抜くと下記のエラーが出ていました。 --------------------------- TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at top_main_fla::MainTimeline/frame251() --------------------------- どうしたら良いか、どなたか教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • suzukaのスクリプトで

    suzukaでFlashを制作しております。 プログラムはさっぱりなので検索して出てきたactionscriptを切り貼りして試している状況です。 その1.フレームアクションにおいて、キーを押したら特定のフレームまで移動するスクリプトを入れたいので20フレーム目に以下のスクリプトを入れたのですが、どちらも使えませんでした。具体的な解決策はありますでしょうか。 ●[parse error]とエラーが出る this.stop(); on(keyPress ("a")){ _root.gotoAndPlay(21); } ●キーを押しても何も起こらない this.stop(); if(Key.isDown(Key.RIGHT)){ _root.gotoAndPlay(21); } else if(Key.isDown(Key.LEFT)){ _root.gotoAndPlay(31); } その2.フレームアクションの10フレーム目に this.stop(); buttonA.onPress=function(){ _root.gotoAndPlay(11); }; とボタンのスクリプトを入れると、 どこのフレームまで移動しようが 同じボタンへの命令で上書きするまで このボタンへの効果が持続されてしまうのですが、 押した瞬間に後に命令を引き継がせないスクリプトの記述はありますか?

    • ベストアンサー
    • Flash
  • actionscript2.0から3.0へ、

    actionscript2.0から3.0へ、 actionscript2.0から3.0へ、 大変申し訳ございませんが、 どなたか書き換えていただけないでしょうか? 情報が足りない場合ご指摘くださいましたら 追記いたします。 flash8にて制作されたFlaをCS4にて修正しています。 3.0がわかるものが出来なくなってしまったので、 こちらに書かせていただきました。 400フレームのものなのですが、1フレームに下記のスクリプトがあります。 btnSkip.onRelease = function() { this._visible = false; gotoAndStop("end"); btnRepeat._visible = true; } 400フレーム目には下記のスクリプトがあります。 stop(); btnRepeat._visible = true; btnSkip._visible = false; btnRepeat.onRelease = function() { gotoAndPlay("start"); this._visible = false; btnSkip._visible = true; } みたところステージには、スキップとリピートのムービークリップがあります。 スキップをクリックすると、400フレーム目に飛んでストップ、リピートを押すと1フレーム目に戻って再生、という動作です。 修正前(2.0)は正常に動作していました。 これを3.0に書き換えていただきたいのです。 大変恐縮なのですが、大至急直さないといけないのです。。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • スクリプトをまとめて書くには

    Actionscript 2.0で作成しています。 例えばムービークリップaaa1~aaa10までと、bbb1~bbb10があったとして、 aaa1をクリックするとaaa1とbbb1が動く、というようなスクリプトを書きたい場合、 for( i = 1 ; i <= 10 ; i++ ){ eval("aaa"+i).onRelease = function(){ this.gotoAndPlay(2); _root.eval("bbb"+i).gotoAndPlay(2); } } としてもbbbの方が動きません。 iの値がeval("bbb"+i)の時点で11になってしまってます。 なので現状forを使わずに書いているのですが、 このような方法を簡単な記述で実現するにはどうすればいいのでしょう? それと、同じ動作を別のムービークリップにさせたい場合、 まとめて書くことはできますでしょうか? (例えばこれをまとめて書くとか) aaa.onRelease = function(){ _root.stop(); } bbb.onRelease = function(){ _root.stop(); }

    • ベストアンサー
    • Flash
  • 複数ボタンで指定のフレームに移動

    CS4、ASは3.0を使用しています。 ASについてはまったくの初心者です。 お店のFLASHを作成しています。構成は ちょっとしたオープニングムービー ↓ ボタンが4つ出てくる ↓ その各ボタンを押すと指定したフレームに飛ばす というものです。飛ばし先でもそこから再生するためplayになります。 各ボタンにはインスタンス名を付けています。 本のサンプルやネットで調べても、まったく同じ状態のスクリプトがわからなかった為、似たようなヤツをアレンジしてかなり色々と試したのですが、全て上手くいきません。 一番近かったのが下記のようになります。 ボタンのインスタンスはmenuです。 this.menu.addEventListener(MouseEvent.CLICK,goNext); function goNext(e:MouseEvent):void { this.nextFrame(); } これをアレンジして(69のフレームに飛ばす) this.menu.addEventListener(MouseEvent.CLICK,goNext); function goNext(e:MouseEvent):void { this.gotoAndPlay(69)(); } としたのですが、エラーが出てダメでした。 その他諸々、色々なスクリプトを試しましたが、 殆どが 「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at _fla::MainTimeline/frame1()」 とエラーがでます。 スクリプトがダメなのか、それともスクリプトを配置する場所がダメなのすらも分かりません。 1.指定のフレームに移動するスクリプトを教えて下さい。 2.スクリプトを配置する場所は1~4のウチでどうれでしょうか? (どの場所に配置してもエラーがでます。又、タイムライン上にすでに配置されているスクリプトは○秒ストップというスクリプトです) 丸一日これに費やしたのですが、まったく出来ず困ってます。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • フレームラベルを使った複数指定について

          |1     |5   |10    |15   |20 レイヤー1 |▲*1*   |▲*2* |▲*3*   |▲*4* |▲*5* | レイヤー2 |●>--→|●--→|●>--→|●--→|●--→| レイヤー3 |●>--→|●--→|●>--→|●--→|●--→| レイヤー1にはフレームラベルが記入されています。 1フレーム目のレイヤー2のボタンは on(press){ gotoAndPlay("*1*"); gotoAndPlay("*2*"); } 1フレーム目のレイヤー3のボタンには on(press){ gotoAndPlay("*1*"); gotoAndPlay("*3*"); } としています。 こちらはきちんと正常に意図通りに動きます。 10フレーム目のレイヤー2には on(press){ gotoAndPlay("*3*"); gotoAndPlay("*4*"); } 10フレーム目のレイヤー3には on(press){ gotoAndPlay("*4*"); gotoAndPlay("*5*"); } としてみましたが、こちらは正常に動きません。 指定の仕方としては誤っているでしょうか? もし間違いでしたら正しい指定の仕方を教えてください。

    • ベストアンサー
    • Flash
  • 一定時間停止後フレーム移動

    初心者ですがよろしくお願いします。 ActionScript3.0にて 一定時間後に任意のフレームまで戻るを実行したいのですが 一定時間止まらずにフレームまで戻ってしまいます。 下記の記述は間違ってますか? 一定時間停止の記述法は色々あるみたいですが いくつかやってみたところエラーばっか出て動きませんでした。 この記述だとちゃんと停止するのですが gotoAndPlay(10); を付けると停止しません。 this.stop(); this.iid = setInterval (function (m) { m.play (); clearInterval (m.iid); }, 3000, this); gotoAndPlay(10);

    • ベストアンサー
    • Flash
  • スライドプレゼンテーション機能を使ったときのボタンでのフレーム操作

    マックでFlash MX Professional 2004を使用しています.新たに追加されたスライドプレゼンテーションのインターフェースでプレゼンを作成しているのですが,stop();やgotoAndPlay()が反映されません. ステージ全体を覆う形で透明のボタンを作り,そこをクリックすると(すなわち画面のどこかをクリックすれば)あるフレームにとばしたいのです. ステージのタイムライン1フレーム目にアクションとして clickboard3.onRelease = function() { _parent.gotoAndPlay("scene4") } *clickboard3は透明ボタン,scene4は飛ばせたいフレーム(この場合,次のシーンの1フレーム目)です. このやりかたで,2003年版のMXまではうまくいっていました. 今回professionalのスライドプレゼンテーションではうまくはたらいてくれません.このスライド機能を使ったテンプレートも付属されていて,その中にNEXTボタンとBACKボタンが搭載されています.スクリプトを見てみるとかなり複雑な感じで,理解できませんでした. よろしくお願いします. PS 昔のFLASH解説をみてみるとボタン操作の記述では onRelease { 指示 } だけでよかったのに,最近のバージョンでは instancename.onRelease = function() { 指示 } となっています.この違いって何なんのでしょうか?下でなぜfuntion()が必要なのかがわからないです.

    • ベストアンサー
    • Flash
  • 【FLASH】swapDepthsでMCが増殖する??

    FLASH8(Win-XP)使用者です。 MCを最前面にもってくるために myDepth = _root.getNextHighestDepth() _root.myMC.swapDepths(myDepth); を使っていますが、不審な動作が多いため検証実験をしています。 不審点はフレーム逆行時のみMCが複製されているという点です。 以下が私の実験です。 ■実験■ 2フレームを用意し、タイムラインに以下を書き込みます。 <1フレーム目> this.stop(); myDepth = _root.getNextHighestDepth() _root.box.swapDepths(myDepth); _root.button.onRelease = function(){ _root.nextFrame(); } <2フレーム目> this.stop(); myDepth = _root.getNextHighestDepth() _root.box.swapDepths(myDepth); _root.button.onRelease = function(){ _root.prevFrame(); } ※ _root.box は解りやすくするため半透明なMCにします。 ここで2フレーム→1フレームに戻るときのみ box の色が濃くなっていくのがわかると思います。 どんどん複製されているためだと思います。 なぜ複製されてしまうのでしょうか? また回避策はあるのでしょうか? お詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 指定したフレームから再生できない(フラッシュ)

    あるフレームになって時点で指定したフレームに飛び、そこからフレームを再生させようとおもっています。 指定したフレームへ飛ぶ事ができるのですがそこからストップしてしまいます。 どうか打開策を教えて頂けないでしょうか? お願します。 あるクリプトに下記の内容のスクリプトが埋め込まれていてそこで指定したフレームに飛ぶようにしています。 onClipEvent(enterFrame){ _x -= 5; if(_x <= 10){ _root.gotoAndPlay("bbb",11); } if(_x <= -600){ _x = 600; } }

専門家に質問してみよう