• ベストアンサー

スライドショーの制御

過去ログの http://oshiete1.goo.ne.jp/kotaeru.php3?q=1690465 の方法を参照させていただき、スライドショーを作成しましたが、 これに「戻る」「進む」「一時停止/再生」のボタンを付け加える事は 可能でしょうか?よろしくお願いいたします。

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

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

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

#1です。 >> 補足で書いていただいた写真番号を示す >> phot_noのダイナミックテキストですが何故か写真番号が >> 1つ先のカウントになってしまいます。 何をしているのか,スクリプトの流れを理解してください。         表示    ↓ロード         表示 MCaアルファ 100~→ 0 --→ 0 ~→100--→100 MCbアルファ  0 ~→100--→100~→ 0 --→ 0          ↑ロード   表示       ↑ロード 上の図のように,表示されているもののアルファが100パーセントで, 表示されていないもののアルファが0パーセントのときに,表示されていないムービークリップの方にJPEGをロードさせています。 そうしないと変ですよね。 表示されている物に,新たに loadMovie すれば,全然クロスフェード(というのか?)をしません。 カクッとかわります。 アルファ0のときに,phot_no の画像を前もってロードさせておいて,それをフェードインさせているのです。 だから,当然,phot_no は表示されているものより先の番号になっています。 というよりわざわざそうしているのです。 そうするしくみを考える部分が一番大変だったのですよ。 >> 戻ると進むはフェードイン~アウトなしにパッパッと写真が切り替わっていくかんじです。 元からそういうことは前提にしていないので,少々ややこしいですし, 上記のとおり, phot_no は表示されているものとはズレているため, クリックするタイミングによっては,1つ飛ばしてしまったりするかもしれませんが,一応考えてみました。 本当はメインムービーの _root のタイムラインのスクリプトを使いたくなかったのですが, フラグを立てる場所が,他にいい場所がなかったので _root のタイムラインを使います。 まず,タイムラインのフレーム1に次の1行を書いてください。 -------------------- //変数フラグ flag の値を "play"に設定 flag = "play" -------------------- これはフラグです。 フラグとは,それ自体には何の意味もない単なる旗印です。 「次へ」ボタンのスクリプトは以下のようになります。 ※ スクリプトの各行の前には,全角空白文字をたくさん入れています。   コピペをする場合は,全角空白を ""(何もなし) で置換するなどして,   全角空白を削除してください。 ------------------------------------ on (release) {    //phot_no が 最終JPEGナンバーであったとき    if(_root.scriptMC.phot_no == _root.scriptMC.photo_all){       //phot_no を 1 にする       _root.scriptMC.phot_no = 1;    //phot_no がそれ以外の場合は    }else{       //phot_no に 1 をプラスする       _root.scriptMC.phot_no++;    }    //変数フラグ flag の値を "stop"に設定    _root.flag = "stop";    //その他の値は以下で固定    _root.MCa._alpha = 101;    _root.MCb._alpha = -1;    //MCa に phot_no+".jpg" をロード    _root.MCa.loadMovie(_root.scriptMC.phot_no+".jpg");    //前進とアルファの変化を停止    _root.scriptMC.zensin = 0;    _root.scriptMC.flg_alp = 0; } ------------------------------------ 「戻る」ボタンのスクリプトは次のようになります。 ※コピペをする場合は,全角空白を削除してください。 ------------------------------------ on (release) {    //phot_no が 1 であったとき    if(_root.scriptMC.phot_no == 1){       //phot_no を 最終JPEGナンバーに設定       _root.scriptMC.phot_no = _root.scriptMC.photo_all;    //phot_no が 1 以外の場合は    }else{       //phot_no に 1 をマイナスする       _root.scriptMC.phot_no--;    }    //変数フラグ flag の値を "stop"に設定    _root.flag = "stop";    //その他の値は以下で固定    _root.MCa._alpha = 101;    _root.MCb._alpha = -1;    //MCa に phot_no+".jpg" をロード    _root.MCa.loadMovie(_root.scriptMC.phot_no+".jpg");    //前進とアルファの変化を停止    _root.scriptMC.zensin = 0;    _root.scriptMC.flg_alp = 0; } ------------------------------------ 結局,読み込む _root.MCa と _root.MCb を初期設定にして, _root.MCa の方に phot_no のJPEGを読み込むスクリプトです。 そして,アルファの変化を止めて,phot_no のカウントアップを停止するスクリプトが書いてあります。 上の2つのボタンは比較的簡単ですが, 「一時停止/再生」ボタンが,かなり難しい,というか難しくはないですがややこしいです。 同じボタンをクリックしたときでも, その前段階によって,再生するときの再生のさせかたが変わるので _root のフラグを利用したりして,クリックの前段階をまず探り, フラグや値によって,条件分岐させています。 「一時停止/再生」ボタンのスクリプトは次のようになります。 ※コピペをする場合は,全角空白を削除してください。 ------------------------------------ on (release) {    //変数zensin (前進)の値が 1 のとき    if (_root.scriptMC.zensin == 1) {       //前進するのと,アルファの変化を止める       _root.scriptMC.zensin = 0;       _root.scriptMC.flg_alp = 0;    //それ以外で,flag が "stop" になっていれば    } else if (_root.flag == "stop") {       //なおかつ,phot_no が 最終JPEGナンバーであったとき       if (_root.scriptMC.phot_no == _root.scriptMC.photo_all) {          //phot_no を 1 にする          _root.scriptMC.phot_no = 1;       //phot_no が 最終JPEGナンバーでなかったとき       } else {          //phot_no に 1 をプラスする          _root.scriptMC.phot_no++;       }       // flag を "play" に設定       _root.flag = "play";       //_root.MCb の方に phot_no+".jpg" をロード       _root.MCb.loadMovie(_root.scriptMC.phot_no+".jpg");       //前進とアルファの変化を開始       _root.scriptMC.zensin = 1;       _root.scriptMC.flg_alp = 1;    //変数zensin 1 ではなく,flag が "stop" でない場合    } else {       //前進とアルファの変化を開始       _root.scriptMC.zensin = 1;       _root.scriptMC.flg_alp = 1;    } } ------------------------------------ ちなみに,「一時停止/再生」ボタンを2つに分ける場合 「一時停止」ボタンのスクリプトは#1と変わらずです。 ※コピペをする場合は,全角空白を削除してください。 ------------------------------------ on (release) {    //前進するのと,アルファの変化を止める    _root.scriptMC.zensin = 0;    _root.scriptMC.flg_alp = 0; } ------------------------------------ 「再生」ボタンのスクリプトは次のようになります。 ※コピペをする場合は,全角空白を削除してください。 ------------------------------------ on (release) {    //flag が "stop" になっていれば    if (_root.flag == "stop") {       //なおかつ,phot_no が 最終JPEGナンバーであったとき       if (_root.scriptMC.phot_no == _root.scriptMC.photo_all) {          //phot_no を 1 にする          _root.scriptMC.phot_no = 1;          //phot_no が 最終JPEGナンバーでなかったとき       } else {          //phot_no に 1 をプラスする          _root.scriptMC.phot_no++;       }       // flag を "play" に設定       _root.flag = "play";       //_root.MCb の方に phot_no+".jpg" をロード       _root.MCb.loadMovie(_root.scriptMC.phot_no+".jpg");       //前進とアルファの変化を開始       _root.scriptMC.zensin = 1;       _root.scriptMC.flg_alp = 1;    //flag が "play" になっていれば    } else {       //前進とアルファの変化を開始       _root.scriptMC.zensin = 1;       _root.scriptMC.flg_alp = 1;    } } ------------------------------------ なお,理解しないと絶対にカスタマイズできません。 でも他人の書いたスクリプトは理解しにくいと思います。それは十分わかります。 私も,自分の書いたスクリプトですが,最初に書いた時より1ヶ月以上経っているため, 何を書いているのか理解するのに,数十分かかりました。そんな物です。 自分が書いていても,しばらくたてば他人が書いたスクリプトです。 一番良いのは,他の人の発想だけを拝借して,スクリプトは全部自分で作ることです。 これくらいの動作になると,書く人によって全く違うスクリプトになると思います。 使えそうな部品と考え方だけを使って最初から自分で作ってみることをお勧めします。 でないと,当然ですが,自分の思った通りにはできません。 だいたい引用されている前回のものも,今回#1と#2で答えた内容も, 全然特殊なスクリプトは使用していません。 SharedObject を除けば Flash5 で十分動きます。 簡単なものを組み合わせているだけです。 『部品と発想だけを盗んで,組み立てるのは自分。』  こうするほうがずっと早道です。

ouiouiwa
質問者

お礼

sassakunさん、的外れな質問で申し訳ありませんでした。 それにも関わらず大変丁寧にご回答下さり恐れ入ります。 Flashは始めたばかりでまだスクリプトの事はほとんど分かっておらず、 これから勉強していこうと思っている状態です。 本当にありがとうございました。

その他の回答 (1)

noname#35109
noname#35109
回答No.1

引用されているスクリプトを書いた者です。 >> ボタンを付け加える事は可能でしょうか? 可能ですよ。 そのスクリプトで行くと, 結局,コントロールは基本的に,変数phot_no を操作すれば良いわけです。 変数phot_no の値は相対的に上げて行っています。 具体的には,    phot_no ++; の部分です。 ここをphot_no ++; で単純に 1 をプラスし続けるのではなくて,時には 0 をプラスしたり, -1 をプラスすれば,前進や後退します。 しかし,変数phot_no を操作しただけでは,アルファの変化が止まりませんから, 同時にアルファの変化を止めたり,再開したりさせれば良いのです。 具体的には,    _root.MCa._alpha += MCa_alp;    _root.MCb._alpha += MCb_alp; の部分です。 ここも単純にアルファをプラスしたりマイナスしたりするだけでなく,変化を 0 にするパターンを作れば良いのです。 引用されているスクリプトは,操作するスクリプトを書くためだけに存在させたムービークリップに書いていますよね。 ボタンを付けるとなると,そのムービークリップの外部から,ムービークリップ内の変数を操作することになります。 だから,まずそのムービークリップにインスタンス名を付けてください。 以下の例では 『scriptMC』 というインスタンス名を付けたとします。 どっちかわからなかったので,SharedObject を使った方のスクリプトを以下のように書きかえます。 ※ スクリプトの各行の前には,インデントを付けるため,   全角空白文字をたくさん入れています。   コピペをする場合は,   全角空白を ""(何もなし) で置換するなどして,   全角空白を削除してください。 -------------------------------------------- onClipEvent (load) {    spd_alp = 5;    stop_time = 12;    photo_all = 10;    //★変数zensin(前進)の初期値を設定★    zensin = 1;    //★変数flg_alp(アルファのフラグ)の初期値を設定★    flg_alp = 1;    count1 = 0;    count2 = 0;    //ローカルのsolファイルを読みに行く    sol_count = SharedObject.getLocal("mySol");    //もしsolファイルにphoto_countがあれば    if (sol_count.data.photo_count != undefind) {       phot_no = sol_count.data.photo_count;       //もしsolファイルにphoto_countがなければ    } else {       phot_no = 1;    }    _root.MCa._alpha = 101;    _root.MCb._alpha = -1;    _root.MCa.loadMovie(phot_no+".jpg"); } onClipEvent (enterFrame) {    if (_root.MCa._alpha<0) {       _root.MCa._alpha = 0;       _root.MCb._alpha = 100;       MCa_alp = MCb_alp=0;       i = 1;       //★以下6行を変えました★       phot_no += zensin;       if (zensin == 1 && phot_no>photo_all) {          phot_no = 1;       } else if (zensin == -1 && phot_no == 1) {          phot_no = photo_all;       }       _root.MCa.loadMovie(phot_no+".jpg");       //solファイルに photo_no-1 の値を保存       sol_count.data.photo_count = phot_no-1;    } else if (_root.MCa._alpha>100) {       _root.MCa._alpha = 100;       _root.MCb._alpha = 0;       MCa_alp = MCb_alp=0;       j = 1;       //★以下6行を変えました★       phot_no += zensin;       if (zensin == 1 && phot_no>photo_all) {          phot_no = 1;       } else if (zensin == -1 && phot_no == 1) {          phot_no = photo_all;       }       _root.MCb.loadMovie(phot_no+".jpg");       //solファイルに photo_no-1 の値を保存       sol_count.data.photo_count = phot_no-1;    }    if (count1>=stop_time) {       i = 0;       count1 = 0;       MCa_alp = spd_alp;       MCb_alp = -spd_alp;    } else if (count2>=stop_time) {       j = 0;       count2 = 0;       MCa_alp = -spd_alp;       MCb_alp = spd_alp;    }    //★以下2行を変えました★    _root.MCa._alpha += MCa_alp*flg_alp;    _root.MCb._alpha += MCb_alp*flg_alp;    count1 += i;    count2 += j; } -------------------------------------------- ★マークを付けた部分が,今回変えた部分です。 そして,ステージ上にはボタンを用意して,各ボタンには以下のようなスクリプトを書けばOKです。 「一時停止」ボタン --コピペ可-------------------------- on (release) { _root.scriptMC.zensin = 0; _root.scriptMC.flg_alp = 0; } ---------------------------------- 「再生」ボタン --コピペ可-------------------------- on (release) { _root.scriptMC.zensin = 1; _root.scriptMC.flg_alp = 1; } ---------------------------------- 上の2つを1つのボタンで済ませる場合, 「一時停止/再生」切り替えボタン --コピペ可-------------------------- on (release) { if (_root.scriptMC.zensin == 1) { _root.scriptMC.zensin = 0; _root.scriptMC.flg_alp = 0; } else { _root.scriptMC.zensin = 1; _root.scriptMC.flg_alp = 1; } } ---------------------------------- 「戻る」「進む」ボタンというのがどういうものなのか,よくわかりませんでした。 「戻る」 10→9→8→… のように写真を切り替えるつまり「逆再生」と考えると 「逆再生」ボタン --コピペ可-------------------------- on (release) { _root.scriptMC.zensin = -1; _root.scriptMC.flg_alp = 1; } ---------------------------------- となります。 「進む」がさらにどういうボタンなのか,よくわかりませんでしたが, 「5なら次は6」ではなくて,「5なら次は7」のように飛ばすボタンだと以下のようになります。 単に phot_no の値を上げてやれば良いわけです。 「進む」ボタン --コピペ可-------------------------- on (release) { _root.scriptMC.phot_no++; } ---------------------------------- スクリプトを書いた 『scriptMC』 というインスタンス名のムービークリップの中に, 「phot_no」という変数名のダイナミックテキストか,テキスト入力のテキストフィードを置いてやると, 「phot_no」がどうなっているのか観察しやすくなりますよ。 他にも,2つ飛ばしとか,2つ前の写真に戻るとか,同じような考え方で作れると思います。

ouiouiwa
質問者

お礼

sassakunさん、丁寧なご回答ありがとうございました。 一時停止/再生はうまくいったのですが、戻る、進むはこちらの説明不足でした、すいません。 戻ると進むはフェードイン~アウトなしにパッパッと写真が切り替わっていくかんじです。フェードイン~アウトと静止時間を待つのが面倒だと思う方用にサクサクと見られるようなボタンがあった方がいいのではないかという意図です。 また補足で書いていただいた写真番号を示すphot_noのダイナミックテキストですが何故か写真番号が1つ先のカウントになってしまいます。 どうかよろしくお願いいたします。

関連するQ&A

  • スライドショーの作り方教えて下さい。

    今ホームページビルダー10を使ってます。 OSはXPです。 ホームページ作成中で、スライドショーを入れようとしてるのですがビルダーを使って、Hotmediaアニメーションで作成すると プレビューでスライドショーが始まるときすぐに画像が始まる前にアニメーションのロゴのようなものが入ってます。 このロゴを消してスライドショーをスタートされるのは無理なのでしょうか? またそれが無理ならスライドショーの作成方法を教えて下さい。 (ちなみに『すなねぃる』と言うソフトをダウンロードしているのですが使い方が分かりません。 ファイルにいくつかのhtmlが作られているのですがこれをどうしたらぃぃのですか?) 他のソフトを使って試してみても、収めたい大きさ(横499:縦331)にならなかったり、 大きさが収まったかと思うと再生ボタンなどが入ったバーが一緒に表示されたりとできません。 スライドショーの表示される大きさを設定でき、再生ボタンなどバーが 表示されないでスライドショー作成する方法教えて下さい。

  • [FlashMX2004]サムネorリスト付きのスライドショーを作りたい。

    使用OSとFlashのVerは以下です。 OS:macOS 10.3.9 Flash:FlashMX2004 過去ログに http://oshiete1.goo.ne.jp/kotaeru.php3?q=1690465 この様なモノがあったので参考に考えていたのですが、ゴールにたどり着けず質問させていただきます。 よろしくお願いいたします。 FlashMX2004でスライドショーを作ろうと思っています。 以下のような仕様にしようと計画しています。 1.一定時間毎に画像が切り替わる 2.画像の切り替えはクロスフェード 3.画像数は2000枚 ここまでが過去ログからの引用なのですが、上記の3つの仕様にプラスして、見たい写真を見ることの出来る機能を取り入れたいのです。 方法はサムネールでもテキストでもその他でも構わないです。 画像数がとても多いので、スクリプトでどうにかならないかと思い質問いたしました。 どなたか、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • スライドショーでクロスフェードができるフリーウェア

    お世話になります。 以前に同じような質問をさせて頂いたのですが 事情が変わってしまったので、改めて質問させて頂きます。 ↓以前の質問はコレです。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1824748 ある発表会でイメージ画像のスライドショーをします。 スライドショーは、タイミングをみながら マウスクリックで画像をおくっていく方法をとりたい のですがここで質問があります。 スライドショーができて、画像があらわれて消える効果 として「クロスフェード」という効果が可能な フリーウェアはないでしょうか? パワーポイントのVer.2002以降ならできるのですが 発表会で使用するために借りるノートPCの パワーポイントはVer.2000でクロスフェードができない のです。 望んでいる手順と効果はこんな感じです。 クリック1.1枚目の画像がだんだん現れる クリック2.1枚目の画像がだんだん薄らいでいくと       同時に2枚目の画像がだんだん現れる。       (1枚目と2枚目が入れ替わる途中       画像が重なるような感じです) クリック3.以降繰り返し・・・ よろしくお願い致します。

  • DVDを画像取り込み(プリントスクリーン)したい

    仕事の関係でDVDを画像取り込み(プリントスクリーン)したいのですが、 どうしてもできません。 DVD再生ソフトで再生→一時停止→プリントスクリーンキー と行っても、いざペイントなどに貼り付けてみると 真っ黒になってしまい、できません。 いろいろここの過去ログを探して、同じような状態になっている方も多かったのですが、 どの対処法をやってもできません。 具体的に何をどう頑張ったのかというと、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=978287 ↑画像の取り込みなどという項目がない http://oshiete1.goo.ne.jp/kotaeru.php3?q=60037 ↑「ActiveMovie」「Real Player」両方の設定変更をやってみたが、効果なし。 などなど他にもかれこれ3時間ほど自力で頑張っていたのですが どうにもダメでこちらに助けを求めに来たしだいです。 どうかお願いいたします。 最終手段はPowerDVDの購入を考えています。

  • ダウンロードの場所教えて下さい・・・。

    VOBを再生したくて過去ログで調べたんですが、 過去ログで見つけたページが英語だらけでわけわかりません。 過去ログ http://oshiete1.goo.ne.jp/kotaeru.php3?q=575197 このページ http://www.maximusdvd.com/ のFreeDVD CODECを入れると書いてあったんですが、 このページを見てもわかりませんでした。 どなたか教えて下さい。

  • スライドショーについて

    メディアソフトに詳しくないので教えて下さい。 友人の結婚式に撮影したデジカメ画像で、スライドを作ってプレゼントしようと思っています。 パワーポイントのスライドショーを作り慣れているので、できればそれを使いたいのですが、パワーポイント上で作成したスライドを、メディアプレーヤーなどで再生できるファイルに変換することはできますか? ご存知の方がいらしたら、教えて下さい。 また、パワーポイントのプレゼンスライドと同じような効果が作れるスライドショー作成のフリーソフトなど、知っていたら教えて頂けますか? 宜しくお願いします。

  • エイコ酸とは何ですか?

    過去ログ (http://oshiete1.goo.ne.jp/kotaeru.php3?q=714622)に出てきた「エイコ酸」の意味を知りたいのです。

  • スライドショーを自作したい

    複数の画像がフェードインして切り替わるスライドショーを作成したいです。 色々なライブラリを拝見したのですが、”再生ボタン”が設置されているものがなく、どれも自動再生のものばかりでした。 CS5を持っているので、そのようなフラッシュを自作したいのですが、flaファイルや作り方が載っているサイトはありませんでしょうか? そのほかJAVAスクリプトでの作成も考えています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • スライドショー

    友人がPowerDVDでスライドショーを作成してくれました。 しかし、私のPCにはPowerDVDはいっていなかった為、再生ができませんでした(WMPでは画像がだけがコマ送りになりました)。 そこで、PowerDVD 7の体験版があったのでダウンロードしましたが、うまく見れませんでした。。 DVD再生専用なのかな~と思い、スライドショウ用のMedi@Show 3 をダウンロードしようかと思いましたがダウンロードできませんでした。(私のOSはvistaです) どうしたら、見れるようになりますか?? 宜しくお願い致します!

  • FX取引会社

    過去ログ http://oshiete1.goo.ne.jp/kotaeru.php3?q=1994452 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1977614 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1964396 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2010314 に、目を通したんですが、結局どれにしたら良いのか悩んでいます。 一応、FXのことや取引会社の選び方など一通り勉強しましたが、それでも信用や使い勝手まではわかりませんので。。 宜しければ、お勧めの会社をあげていただけたら幸いです。 ※今、トレイダース証券では美味しいキャンペーン中みたいですね。 http://www.traderssec.com/ex/adver/kawase/anniv_cam/

専門家に質問してみよう