トップページにFlashムービーを配置したのですが、
他のページを閲覧した後に再びトップページに戻ったときに、ムービーを再生せずに最後のフレームを表示させるにはどのようにしたらよいのでしょうか?
ムービーの最後のフレームをコピーして別のflashを作り、各ページの「topへ」ボタンには、こちらのflashへのリンクを書き込んでみたのですが、ブラウザの戻るボタンを使うとやはり再生されてしまいます。
分かりにくい説明ですみませんが、よろしくお願いいたします。
※制作環境は、WIN-XP FLASH8です。
No.4ベストアンサー
- 回答日時:
#2の方の引用先を回答した sassakun と申します。
SharedObject は JavaScript ではありません。
JavaScript で言うところの Cookie が SharedObject です。
SharedObject は Flash のスクリプトなので Flash 単独で解決できます。
書かれているご質問ですが,
ポイントは2つあります。
◎ 1度目であっても何度目であっても,いきなり最終フレームには飛べない。
→対処:全フレームのロード待ち処理を入れる
◎ 1度SWFをアンロードするとそこにある変数などもすべて初期化されるのでSWF単独では何度目の訪問かわからない。
→対処:SharedObjectで前回アンロードした日時を記録
という2点です。
引用先のURLではムービークリップを作成してそこにスクリプトを書いていますが,
おそらく,ムービークリップに書くと色々実験するときに便利だからだと思います。
今になればムービークリップに書いた意味もよくわかりませんので,
_root(メインムービー)のフレーム1とフレーム2を使って,
もう少し理にかなったスクリプトに書き替えてみました。
注釈行(コメント行)も入れていますので,とりあえずコピペされて,
動くかどうかを試したうえで,後からどうなっているか理解してみてはどうでしょうか。
---- フレーム1 のスクリプト ------------
// とりあえずストップ
this.stop();
// ---全てのフレームのロード待ち処理--- //
this.onEnterFrame = function() {
// 全てのフレームがロードされたらスタート
if (this._framesloaded>=this._totalframes) {
this.play();
delete (this.onEnterFrame);
} else {
this.stop();
}
};
----------------------------------
---- フレーム2 のスクリプト ------------
// ★期限の設定(単位秒)
var timeLimit = 20;
// SharedObjectの読込み
var myObject = SharedObject.getLocal("myWatch");
// Dateオブジェクトの作成
var myDate = new Date();
// 変数 Watch2 に現在の時刻を記録
var Watch2 = myDate.getTime();
// SharedObject に Watch1 が存在したら
if (myObject.data.Watch1 != undefined) {
// SharedObject内のWatch1をこのWatch1に代入
var Watch1 = myObject.data.Watch1;
// SharedObject に Watch1 が存在しなかったら
} else {
// Watch1に 0 を代入
Watch1 = 0;
}
// もし期限内であれば最終フレームに飛ぶ
if (Watch1+(timeLimit*1000)>Watch2) {
this.gotoAndStop(this._totalframes);
}
// SharedObject に時刻を随時記録
this.onEnterFrame = function() {
myDate = new Date();
myObject.data.Watch1 = myDate.getTime();
};
----------------------------------
フレーム2の1(2)行目の
var timeLimit = 20;
は実験のために20秒にしています。
実際は 3600秒 とかの方が良いかもしれません。
上のスクリプトの場合,
フレーム1 とフレーム2 には何も置かない方が良いです。
置いても良いですが,最終フレームに行くときにちらっとそれらが見えてしまいます。
□ レイヤー 筆・・|○|○ ←スクリプト用レイヤー
□ レイヤー 筆・・|○ []|●>------>|● []|○
□ レイヤー 筆・・|○ []|●///////[]|●/////
~ 略 ~ ~~ 略 ~~
これは,上のSWFが表示されているページから他のページに移ったとき,
または,上のSWFが表示されているページを閉じたときから時間がカウントされます。
引用先の回答#3でもその辺のことに触れていますが,
SWFが表示されてからの時間をカウントしているわけではありませんから,
ブラウザを指定時間以降に更新しても,最終フレームには飛びませんので注意してください。
なお,引用先の質問には続編が存在しています。
余裕があれば,参考にしてみてください。
余裕がなければさらに混乱する可能性もありますが。
「(1)loading後再生→(2)すぐにアクセスした場合飛ばす」
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1814846
↑教えて!goo ↓OKWave (同じです)
http://okwave.jp/kotaeru.php3?q=1814846
その他参考URL
16.nowloading
http://fpower.org/tips.htm#FL016
SharedObject クラス
http://www.1art.jp/flash/le/lesson41/lesson41.htm
たびたびのご回答、ありがとうございます!
できました!
ムービーの再生回数ではなく、別ページに移ってからの経過時間を基準にしてるんですね。
とても詳しいコメントをつけて頂き、勉強になります。
引用元の続編も拝見したのですが。。。
もう少し、じっくり見直してみたいと思いました。
思うように動くようになって、とても嬉しいです。
ありがとうございました。
No.3
- 回答日時:
No1です。
CGIなどを使用しなくてもNo2の方がおっしゃっているようにjavascriptでも可能ですが、javascriptを使用しない設定にしている場合意味がなくなってしまう為、
CGIなどの方がいいかなと思いました。
javascriptの方が楽ですが、より多くの人にHPを楽しんでもらいたいと思うんでしたらCGIの方がお勧めです。
たびたび、ありがとうございます!
CGI側の設定で、トップページの読み込み回数に応じてFlashの再生を制御するという考え方なのでしょうか?
CGIの設定については全くの未経験ですので、調べてはみたものの、まったく歯が立たない状態です。もう少し調べてみたいと思います。
ありがとうございました。
No.2
- 回答日時:
SharedObject = JavaScriptでいうところの Cookie
私の回答ではありませんし、長いスレッドですがご参考に。
「flash トップページ 自動再生防止」
http://okwave.jp/kotaeru.php3?q=1703563
ご回答、ありがとうございます!
こちらのスレッドの内容も参照させて頂いたのですが、何とも上手くできなかったもので。。。
もう一度、トライしてみます。
ありがとうございました!
No.1
- 回答日時:
TOPページにFLASHがあるんでしたらまず必ずSKIPボタンをつけましょう(TOPページのFLASHがとてもうざく思う人もいる為)
>ブラウザの戻るボタンを使うとやはり再生されてしまいます。
自分の知る限りではFLASHのみで出来ないんではないかと思います。
CGIなどで最初読み込んだ時にクッキーなど発行して2度目にそのページを読み込んだ時はFLASHを飛ばす処理を入れればいいんではないでしょうか?
早速のご回答、ありがとうございます!
トップページの再生を1回だけにするにはCGIなどの知識が必要なんですね?
ちょっと調べてみます。
SKIPボタンについては、私もそう思います。
アドバイス、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- マルウェア・コンピュータウイルス FlashPlayerの削除とマルウェア感染について 5 2023/02/23 20:52
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- USBメモリー・SDカード・フラッシュメモリー プリンタのドライバーをUSB Flash Diskに保存したい。 4 2023/05/23 23:30
- ホームページ作成・プログラミング Adobe FLASH に代わるソフトはありますか? 4 2022/09/27 19:35
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
- デスクトップパソコン デバイスからのHDMI信号がありません 5 2022/05/07 18:08
- デスクトップパソコン ホームページビルダー15 1 2023/05/30 12:30
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- Flash 私のコンピューター上のファイルが開けられない。 1 2022/07/19 18:15
- ドメイン・サーバー・クラウドサービス 自作サイトをサーバーにアップロードしたのですが… 2 2022/11/08 18:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ムービーの早送りと巻き戻しが...
-
FLASH上でインラインフレームみ...
-
VBSでHTMLソースの取得方法で
-
マスクの形を自由自在に変えたい
-
C#でDLLファイル読み込みを行う...
-
FLASH CS3 フェードインフェー...
-
iframeはSEO的に不利になる?
-
gh5のカメラを購入しました、初...
-
シーンからムービクリップ内の...
-
オプションボタンを矢印キーで...
-
眼鏡レンズを持参すればフレー...
-
動画ファイルから画像ファイル...
-
フラッシュで逆再生中の停止に...
-
再読み込みが可能なPDFビューワ...
-
めくれるカードの作成方法
-
flashのアクションについて教え...
-
Flash・携帯の待受時計Flashを...
-
シーケンス番号の初期値
-
Flashファイルのループ再生方法
-
フレームをまたいだ背景画像の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WEBブラウザの重複起動の禁止
-
AS3.0で子MCから他の子MCの...
-
ループ再生のflashをタイムライ...
-
Math.ramdom()を特定回数繰り返す
-
ASではどうやって記述するのか
-
Excel VBA SetFocus
-
フラッシュ初心者ですが
-
Smartyのテンプレートについて
-
ActionScriptで関数とは?
-
Flash lite1.0の計算クイズ
-
プルダウンメニューとフェード...
-
Error#1009 時計のシーン移動ボ...
-
秒と同期してMCを動作させる方法
-
キーボードを押した時のムービ...
-
ActionScript3.0でエラーがでる
-
ボタンシェイプにリンクを張ると…
-
as3 SharedObjectクラスを使用...
-
ボタンとASが1フレーム目にない...
-
loadMovieで読み込んだswf
-
FLASH LITE1.1のテキスト入力に...
おすすめ情報