- ベストアンサー
スライドプレゼンテーション機能でのボタン操作
- マックでFlash MX Professional 2004を使用しています.新たに追加されたスライドプレゼンテーションのインターフェースでプレゼンを作成しているのですが,stop();やgotoAndPlay()が反映されません.
- ステージ全体を覆う形で透明のボタンを作り,そこをクリックすると(すなわち画面のどこかをクリックすれば)あるフレームにとばしたいのです.
- Professionalのスライドプレゼンテーションではうまくはたらいてくれません.このスライド機能を使ったテンプレートも付属されていて,その中にNEXTボタンとBACKボタンが搭載されています.スクリプトを見てみるとかなり複雑な感じで,理解できませんでした.
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- スライドプレゼンテーション機能を使ったときのボタンでのスライド移動
こんにちわ。 FLASH8のスライドプレゼンテーション機能を使用して、映像とリンクしたプレゼンテーションを作成しています。 仕様としては、各スクリーンにフレームアクションを作成し、 各スクリーンにスクリプトを記述し、フレームを時間制御しています。 スクリーンの時間制御スクリプト: on (reveal) { timerID3 = setInterval(startMovie3, 31000); timerID4 = setInterval(startMovie4, 38000); function startMovie3() { trace("31秒待った"); trace([currentSlide, currentSlide.gotoNextSlide]); // 確認用に追加 rootSlide.currentSlide.gotoAndPlay(10); clearInterval(timerID3); } function startMovie4() { trace("38秒待った"); trace([currentSlide, currentSlide.gotoNextSlide]); // 確認用に追加 rootSlide.currentSlide.gotoAndPlay(15); clearInterval(timerID4);} } 上記をスクリーンに記述して、各スライドのフレームを制御しています。状況としては、こんな感じなのですが、問題は、一度ボタンでスライドを移動し、そのスクリプトの全ての時間指定が終了する前に、違うスライドへボタンで移動した場合、前のスライドのスクリーンに記述した時間指定のスクリプトも一緒に裏で動き前のスライドに記述した時間にあわせて、現表示されているフレームも稼動してしまいます。 トレースの状況としては、 28秒待った _level0.bg.controls.slide02,[type Function] 31秒待った _level0.bg.controls.slide02,[type Function] 37秒待った null,undefined 38秒待った _level0.bg.controls.slide02,[type Function] 一度スライドをボタンで選択しても、違うスライドを選択した時点で前のスライドのスクリプトを無効なりに制御する方法はありませんでしょうか?何卒、よろしくお願いいたします。
- 締切済み
- Flash
- スライドプレゼンテーション機能を使ったときのボタンでのフレーム操作#2
「次のスライド」ではなく「任意のスライド」に移動させたくて、「スライドに移動」ビヘイビアを使ってみたんですが、シンタックスエラーがでて、「')'が必要です」とでてしまいます。実際に閉じ括弧の数は合っています。スライドでの移動はタイムラインのレベルをどこに指定してもうまくいかない感じです。ビヘイビアでムービークリップのフレーム移動のダイアログボックスでは子スライドのレベルを選択できません。何か他の方法あるでしょうか?あるいは僕のが間違っているのでしょうか? もう一つ、30フレーム規模のアニメーションで構成されたムービークリップをスライドにそのまま配置したが、プレビューでそのステージに進んだときには既にそのアニメーションがスタートしており、途中から流れてしまう。最初のスライドを開始したときに全てのスライド内の入れ子MC全てが再生開始してしまいます。スライドが入れ替わったときにスライド内で入れ子になっているMCも1フレーム目からスタートしたいです。どんなスクリプトを書けばいいのでしょうか。かなり基本的なことなはずなんですが、いろいろやってみてもだめでした。 ついでにもう一つの謎。スライドプレゼンテーションのときの基準点と普通のタイプのときの基準点が違います。スライドの基準点を左上端にしたいんですが、自動吸着で左上を選択してもそうはならない。普通のタイプでつくったタイムラインのフレームをそのままスライドプレゼンタイプにコピーアンドペーストすると、ペースト先の基準点が異なるためすべてのオブジェクトの位置がずれる。画面サイズはどちらのタイプでも同じです。スライドプレゼンの基準点を普通のタイプの基準点と同じにすることってできないんでしょうか? かなり長くなってしまいました。すいません。よろしくお願いします。
- ベストアンサー
- Flash
- 複数のクリックボタンにより再生と停止場所を指定する方法
複数のボタンを用意し、クリックするボタンにより異なるフレーム数で停止たいと思っております。 停止したいフレームごとにstop();を入れると、そこで毎回止まってしまうのでボタン毎に停止場所を指定しようと、以下のように試してみましたが、出来ませんでした。 停止場所をラベルでも指定してみましたが、出来ませんでした。 stop(); _root.next1.onRelease = function() { gotoAndPlay(5); this.stop(10); } _root.next2.onRelease = function() { gotoAndPlay(5); this.stop(20); } どなたかお考えのあるかたご教授いただけますと幸いです。 当方 Flash8 ActionScript2.0 を使用しています。
- 締切済み
- Flash
- ボタンとASが1フレーム目にないとエラーになるのは仕様ですか?
CS4、AS3.0で作成しております。 クリックすると指定したシーンへ移動するスクリプトを作成しました。 ボタンが複数あるので、各ボタンにインスタンス名を入れてます。 //各ボタンが押されるのを監視 this.menu_btn.addEventListener(MouseEvent.CLICK,menu); this.shop_btn.addEventListener(MouseEvent.CLICK,shop); this.access_btn.addEventListener(MouseEvent.CLICK,access); //クリックされたとき、指定フレームまで移動 function menu(e:MouseEvent):void { this.gotoAndPlay(69); } function shop(e:MouseEvent):void { this.gotoAndPlay(75); } function access(e:MouseEvent):void { this.gotoAndPlay(78); } で、ボタンとASを1フレーム目に入れれば作動するのですが、両方とも2フレーム以降に持ってくるとエラーが出て作動しません。 「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」と出ます。 ボタンの数を1つにしても同様でした。 プログレスバーを作るのに、2フレーム目に持ってきたいのですが、これはCS4の仕様かバグなのでしょうか? 回避する方法はありますでしょうか? よろしくお願い致します。
- ベストアンサー
- Flash
- 音楽が輪唱してるように聞こえてしまう
いつもお世話になってます。 環境はWindews XP、FLASH Basic8 を使用してます。 シーンは3つあり、各シーンに音楽を設定しています。 音楽はフレームに設定しています。 シーン1→01.wavを設定 シーン2→02.wavを設定 シーン3→03.wavを設定 (こんな感じで音楽を設定しています。) 全てのシーンには、他のシーンの1フレーム目から再生されるように以下のようなAction Scriptをムービークリップに設定しました。 _root.bt1.onRelease = function() { gotoAndPlay("1", 1); }; _root.bt2.onRelease = function() { gotoAndPlay("2", 1); }; _root.bt3.onRelease = function() { gotoAndPlay("3", 1); }; ですが、これだとクリックした時に、シーンは切り替わっても、音楽が切り替わらず、輪唱しているようになってしまうんです。 シーンが切り替わると同時に、音楽も切り替わるようにするにはどうしたらいいのでしょう??? まだFlashを始めたばかりで、Action Scriptのこともまだよく分かっていません。。。 どこをどうしたらいいのか、初心者な私に、どうか皆様ご教授下さい。 また、足りない情報がありましたら、ご指摘下さい。 よろしくお願いいたします。
- ベストアンサー
- Flash
- ボタンについて(CS4,AS3)
HPのメニュー用に、クリックするとフレーム移動するボタンを作っています。 フレーム1以外のフレームには、フレーム1に設置してあるボタンで指定したフレームとは異なるフレームに 移動させたいので、新たにフレーム1のボタンとは別のボタンを設置しています。 プレビューでフレーム1のボタンをクリックすると正常に動くのですが、 フレームが移動した後に再度ボタンをクリックすると動かず、全てのボタンが反応しません。 ■フレーム1に設置してあるボタン test_a1.addEventListener(MouseEvent.CLICK , testA1); test_b1.addEventListener(MouseEvent.CLICK , testB1); test_c1.addEventListener(MouseEvent.CLICK , testC1); function testA1(event : MouseEvent) :void{ gotoAndPlay(1); } function testB1(event : MouseEvent) :void{ gotoAndPlay(51); } function testC1(event : MouseEvent) :void{ gotoAndPlay(101); } ※フレーム1、51、101にはstop();で停止するようにしています。 ■フレーム51に設置してあるボタン test_a2.addEventListener(MouseEvent.CLICK , testA2); test_b2.addEventListener(MouseEvent.CLICK , testB2); test_c2.addEventListener(MouseEvent.CLICK , testC2); function testA2(event : MouseEvent) :void{ gotoAndPlay(11); } function testB2(event : MouseEvent) :void{ gotoAndPlay(61); } function testC2(event : MouseEvent) :void{ gotoAndPlay(111); } コンパイルエラーは出ていません。 ネットで調べても何故、フレーム1以外のボタンが動かないのか分かりません。 どなた様か教えていただけると助かります。 使用しているソフトはAdobe Flash CS4で、スクリプトはActionScript3.0です。 よろしくお願いします。
- 締切済み
- Flash
- こんにちは。
こんにちは。 flash初心者なのですが、actionscript2.0でわからないことがあります。 ステージ上のインスタンスをクリックしたとき、そのインスタンスの名前を取得する方法はあるのでしょうか。 やりたいこととしては、a,b,c・・・などの名前がついたインスタンスがステージに配置されているとき、aをクリックするとシーンaにジャンプし、bをクリックするとシーンbにジャンプする(以下同様)というスクリプトを書きたいと思っています。 a.onRelease = function(){ gotoAndPlay(a,1); } b.onRelease = function(){ gotoAndPlay(b,1); } などのように一つひとつ記述すればよいのですが、それぞれ構文は全く同じため、 「ひとまとめにして記述できれば短くできるなあ。クリックしたインスタンスの名前が取得できれば、それを変数に格納して、その後の処理に使えるかも!?」 と思った次第です。 素人考えかもしれませんが、ヒントをいただけるとありがたいです。
- ベストアンサー
- Flash
- ActionScript3.0フレーム移動について
お世話になります。 Flash ActionScript3.0で、ボタンをクリックしたら、 階層違いのシーンに移動するという 単純なところでつまずいています。 一番上の階層には、 1フレーム目 フレームラベル "a" 2フレーム目 フレームラベル "b" として、それぞれ this.stop();を書いてあります。 "a""b"には、それぞれムービークリップが配置してあって、 今やりたいことは、"a"に配置してあるムービークリップの 2つ下(中?)の階層にあるボタンをクリックしたら、一番上の階層の"b"に移動して、 "b"に配置してあるムービークリップを表示するようにしたいのです。 "a"のムービークリップのボタンのあるフレームには、 this.stop(); button01.addEventListener(MouseEvent.CLICK,jumpB); function jumpB(event:MouseEvent):void { MovieClip(parent.parent).gotoAndStop("b"); } と書いてみましたが、 [TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。] と怒られます。 試しに MovieClip(stage).gotoAndStop("b"); とか、"b"に配置してあるムービークリップにインスタンス名"b_mc"を与えて MovieClip(parent.parent).b_mc.play(); などと苦し紛れにやってみましたが、すべて同じように怒られます。 どのようにすれば、下の階層から一番上の階層の別フレームに 移動することができますでしょうか? よろしくお願い致します。
- 締切済み
- Flash
- ボタンを押して
下記のように記述して、ボタンを押すとフレーム2に飛ぶようにしました。 ____________________________________________________________________________________________________________________________ btn02_mc.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndPlayFromFrame_2); function fl_ClickToGoToAndPlayFromFrame_2(event:MouseEvent):void { gotoAndPlay(2); } ____________________________________________________________________________________________________________________________ しかし、もう一度同じボタンを押すと、フレーム2が開始されずにフレーム1が開始されます。 フレーム1になり、フレーム1中に再度、このボタンを押すとフレーム2が開始されます。 私がやりたいのは、このボタンを何度押してもこのボタンを押した際には、フレーム2が開始されるようにしたいです。 よろしくお願いします。
- 締切済み
- Flash
- ボタンのアクションについて
flashの初心者です。 シーン1とシーン2を作り、シーン2の中に、文字&ボタンインスタントを一つのフレームに入れ、モーショントゥイーンをかけました。 そして、その中のボタンインスタントにアクションを入れました。 on (release) {gotoAndPlay(350);} ボタンを押し話したときに、350(シーン2)のフレームへ飛んで再生するように設定しました。 しかし、ちゃんと作動してくれません。 シーン2の205からスタートしてしまいます。 シーン1はフレーム数は145まで入ってます。 よく見ると、この145と205を足すと350になります。 つまり、シーン1からシーン2にかけて350番目と言う様になってしまいます。 だから、アクションを on (release) {gotoAndPlay(495);} にすると、きちんと動いてくれます。 シーンを分けているときは、こう言うように足さないといけないのでしょうか? シーン2の350と言うように設定はできないのでしょうか? on (release) {gotoAndPlay("シーン2"350);} では出来ませんでした。 モーショントゥイーンをかけていない、普通のボタンは、普通に設定(145を足さない)でうまく動いてくれます。 よろしくお願いします。
- ベストアンサー
- Flash
補足
素早い&丁寧な回答どうもありがとうございます!! 後半の説明かなり勉強になりました。教則本といったりきたりでやっと理解できる程度ですが。 >「しかし、onMouseUp や onMouseDown を使えば、_root のマウスボタン >イベントを利用することもできますし、createEmptyMovieClip で空のムービークリップ >を作り、フレームに onMouseUp か onMouseDown で処理を定義することも可能です。 >つまり、ステージにダミーのムービークリップを隠しておく必要はありません。 の部分から下が実際どういうスクリプトうてばいいのか、うまくつかめません。でもこれかなり便利そうですね。画面のどこかをクリックしたらここへ移動!っていうのがボタン作る必要なく、スクリプト上だけですんでしまうんですよね。後述のwhileスクリプトとからめて使う感じですよね? スライドがらみのスクリプトはまだわからない部分が多いみたいですね。 >スライド間の移動は少々複雑なので、よく分からなければ、「ビヘイビア」でスクリプトを自動で作成するのも1つの手です。 この方法でやってみたところなんとか上手にいきました!!ありがとうございます。 で、今度は目的のスライドに移ろうと思って「スライドに移動」ビヘイビアを使ってみたんですが、スクリプトエラーがでて、「')'が必要です」とでてしまいます。ビヘイビアしか使ってないので、たぶんバグかと思います(実際に閉じ括弧の数は合っている)。かなり困っています。フレームラベルでの移動はタイムラインの次元をどこに指定してもうまくいかない感じです(私のスクリプティグが間違っている可能性あり)。なにか方法はあると思いますか?あるいはフレームラベル正しく設定すれば成功するのでしょうか? もう一つ、30フレーム規模のアニメーションで構成されたムービークリップをスライドにそのまま配置したが、プレビューでそのステージに進んだときには既にそのアニメーションがスタートしており、途中から流れてしまう。それをそのスライドに来るまで止めておいて、きたらスタートという風にしたいが、どんなスクリプトを書けばいいのか、というところがわかりません。かなり基本的なことなはずなんですが、いろいろやってみてもだめでした。if条件文を使うんでしょうか? ついでにもう一つの謎。スライドプレゼンテーションのときの基準点と普通のタイプのときの基準点が違う。スライドの基準点を左上端にしたいんですが、自動吸着で右上を選択してもそうはならない。普通のタイプでつくったタイムラインのフレームをすべてスライドプレゼンタイプにコピーアンドペーストすると、ペースト先の基準点が異なるためすべてのフレームの位置がずれる。画面サイズはどちらのタイプでも同じです。スライドプレゼンの基準点を普通のタイプの基準点と同じにすることってできないんでしょうか? かなり長くなってしまいました。すいません。