![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
FLASHで、一定時間内にアクセスするとオープニングを飛ばすスクリプ
トを書いています。Javascriptのクッキーと同じスクリプトの「SharedObject」を使用しています。
www.hfm-kenchan.com/Lesson/log_qa/D0512073.htm
こちらのサイトの解説とサンプルを使用させてもらい、作ってみました
が、ページを更新しても1フレーム目からのアニメーションが始まって
しまい、スクリプトが効いてません。
現在作っているファイルのアニメーションが25fps、171フレームまであるのが原因だと思いますが。
変数に入っている数字などを変えてみましたが、効きません。
同じサンプルでもレイヤー数がスクリプト用のレイヤーと合わせても3
レイヤー、フレーム数11フレームで作ると効きます。
スクリプトのレイヤーにさらに別のスクリプトを書き加えてやる必要があるのかと思いますが、スクリプト素人である為判りません。
どなたか判る方いらっしゃるでしょうか。お教え下さい。
1フレーム目に入るスクリプトを書いておきます。
span = 15;
nowDate = new Date();
nowAC = nowDate.getTime();
cookie = SharedObject.getLocal("accessTime");
if (cookie.data.beforeAC != undefined) {
Time = Math.floor((nowAC-cookie.data.beforeAC)/1000);
cookie.data.beforeAC = nowAC;
if (Time < span) {
this.gotoAndStop("menu");
}
} else {
cookie.data.beforeAC = nowAC;
}
使用ソフトはFLASH8、環境はWDXPです。どなたかお助け下さい。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ご質問の,
FLAファイルデータを持っていないので検証はできませんが,
171フレームあるから動作しないという,
その予想は当たっていると思いますよ。
一応こちらの#4でも回答しています↓。
「一度再生したFlashをスキップするには」
http://oshiete1.goo.ne.jp/qa2167133.html
↑教えて!goo ↓OKWave (同じです)
http://okwave.jp/qa2520618.html
> スクリプトのレイヤーにさらに別のスクリプトを
> 書き加えてやる必要があるのかと思いますが
これも正解ですが,ちょっと違うと思います。
問題は,SharedObject ではなく,
> 一定時間内にアクセスするとオープニングを飛ばす
この 「オープニングを飛ばす」 部分だと思います。
「オープニングを飛ばす」 ということがどういうことか具体的にはわかりませんが,
171フレーム近くに gotoAndPlay(); しているのではないでしょうか。
SharedObject 抜きで,フレーム1 に,いきなり
gotoAndPlay(171);
と書いても動作しないと思います。
なぜなら,そんなフレームはまだ読み込まれていないからです。
上に書いた URL のように,
フレーム1 に 「NowLoading...」 みたいなものだけを置いて,
他は何も置かないようにして,
そのフレーム1を表示中に全てをフレームをダウンロードさせておいて,
フレーム2 で,書かれている,SharedObject 絡みのスクリプトを書くとうまく動作すると思いますよ。
上に書いた URL では,ビジュアル的に手抜きしていますから,
他の 「NowLoading...」を参考にしてくれても良いですし,
フレーム1 に次のようなスクリプトを書いても良いと思います。
コピペするだけで使えると思います。
// ---「AS のみで作る 簡易 Now Loading」-----------------------
//
// --- 取りあえずストップ ------
_root.stop();
//
// バーの100%ロード時の横幅の設定(※可変)
var b_w = 150;
//
// --- 表示用ムービークリップの作成---
// 空のムービークリップ indicator を深度 1 に作成
_root.createEmptyMovieClip("indicator", 1);
// indicator の座標をステージ中央に設置
_root.indicator._x = Stage.width/2;
_root.indicator._y = Stage.height/2;
//
// ---「Now Loading ...」という文字を作成---
// テキストフィールド title を作成
_root.indicator.createTextField("title", 1, 0, 0, 0, 0);
// テキストフィールド title のプロパティを設定
_root.indicator.title.autoSize = true;
_root.indicator.title.textColor = 0x0000cc;
_root.indicator.title.text = "Now Loading ...";
// テキストフィールド のテキストのフォーマット
var format1 = new TextFormat();
format1.size = 20;
_root.indicator.title.setTextFormat(format1);
// テキストフィールド の座標を指定
_root.indicator.title._x = -_root.indicator.title._width/2;
_root.indicator.title._y = -60;
//
// ---デジタル表示部分の作成---
// テキストフィールド percentage を深度 4 に作成
_root.indicator.createTextField("percentage", 4, 0, -20, 0, 0);
// テキストフィールド title のプロパティを設定
_root.indicator.percentage.autoSize = true;
_root.indicator.percentage.textColor = 0x000000;
//
// --- バーの作成 ---------
// バーの下塗りを作成
// 空のムービークリップ underbar を深度 2 に作成
_root.indicator.createEmptyMovieClip("underbar", 2);
// バーの座標を指定
_root.indicator.underbar._x = -b_w/2;
_root.indicator.underbar._y = 20;
// バー自体を描画
with (_root.indicator.underbar) {
beginFill(0xcccccc, 100);
lineStyle(0, 0x000000, 100);
moveTo(0, 0);
lineTo(0, 10);
lineTo(b_w, 10);
lineTo(b_w, 0);
endFill();
}
//
// 空のムービークリップ bar を深度 3 に作成
_root.indicator.createEmptyMovieClip("bar", 3);
// バーの座標を指定
_root.indicator.bar._x = -b_w/2;
_root.indicator.bar._y = 20;
// バー自体を描画
with (_root.indicator.bar) {
beginFill(0x0000cc, 100);
lineStyle(0, 0x000066, 100);
moveTo(0, 0);
lineTo(0, 10);
lineTo(1, 10);
lineTo(1, 0);
endFill();
}
//
// --- NowLoading を動作させる ---
// 1フレーム進む時間ごとに毎回実行
_root.indicator.onEnterFrame = function() {
//
// ロードされた割合を計算
var par1 = _root.getBytesLoaded()/_root.getBytesTotal();
var par2 = Math.floor(par1*100);
//
// デジタル表示部分に表示
this.percentage.text = par2+"%";
// テキストフィールド のテキストのフォーマット
var format2 = new TextFormat();
format2.size = 16;
this.percentage.setTextFormat(format2);
// テキストフィールド の x座標を指定
this.percentage._x = -this.percentage._width/2;
//
// バーを伸ばす
this.bar._width = _root.b_w*par1;
//
// タイムライン制御
if (par1<1) {
_root.stop();
} else {
// ※↓必要に応じて変更
_root.gotoAndPlay(171);
// この indicator を消す
this.removeMovieClip();
}
};
/*
作成環境:Flash MX 以上
閲覧環境:Flash Player 6 以上
ActionScript 1.0
*/
// ----------------------------------------------
※ メインムービーのみのロード済パーセンテージを表示します。
※ また,勝手にロードが済み次第 _root.gotoAndPlay(171);
するようにしていますが,
そこは必要に応じて,違うフレーム数に変えてください。
お礼が遅くなりすいません。
1フレーム目にプリローダーを入れてやれば、全体のロード時間を待ってくれるので2フレーム目に入れているSharedOjectが効いてくれるとアドバイスを頂きましたが、1フレーム目に97行目の_root.gotoAndPlay(フレーム数);と入れる為2フレーム目に入っているSharedOjectがやはり効きません。
_root.gotoAndPlay(2);と入れるとSharedOjectは効かず、2度目の訪問でも2フレーム目からのアニメーションから始まってしまい、_root.gotoAndPlay(静止画の入ってるフレーム数);と入れると2フレーム目から入れているアニメーションは一度目の訪問から飛ばされてしまいます。
一度目は170フレーム近くのアニメーションさせ、2度目からは15秒以内に訪れた場合は静止画が置いてあるフレームに飛ばせたいのですが、それが出来ないのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
- Java 動かなくなったのでJavaソースを手直しお願いします。 2 2022/04/30 05:35
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- Chrome(クローム) Cookieを削除 他サイトでの自動ログインなどの設定も削除されますか パソコン クロームです 1 2022/09/10 21:47
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- PHP phpでcookieがうまく保存されない 2 2023/08/02 16:40
- SSL・HTTPS 掲示板サイトへの書き込みができない件(ブラウザソフトを変えてもできない) 2 2022/11/20 10:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部テキスト読み込み、横スク...
-
スクリプトが何に記述されてい...
-
ムービークリップの位置と角度...
-
Flashのタイムラインの中の、「...
-
オプションボタンを矢印キーで...
-
車の運転時のメガネ 縁なし(...
-
ソーラーパネルのアルミフレー...
-
Flashで右クリックメニューにつ...
-
Flashでの連打ゲームの作成方法...
-
VBで動的に作成したパネルの上...
-
vbscriptでウィンドウズメディ...
-
gotoAndPlayで特定のフレームま...
-
○秒後にフレーム移動
-
WEBブラウザの重複起動の禁止
-
ハードディスク DVD 読み...
-
リフレッシュ・レート、フレー...
-
ドキュメントサイズの変更
-
大元のタイムラインの変数を初...
-
再読み込みが可能なPDFビューワ...
-
簡単な連打ゲームを作りたい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FLASHでパブリッシュのswfが重...
-
ムービークリップの位置と角度...
-
スクリプトが何に記述されてい...
-
Flash4でloadMovieの完了を知る...
-
flashからflash lite
-
ActionScript 2.0 再生・停止
-
フラッシュプレイヤーのバージ...
-
外部JPG読み込みでのLoading
-
プリローダーで、画像を下から...
-
フレーム内に移動したい
-
phpで音を鳴らす
-
Flashで右クリックメニューにつ...
-
C言語 バッファについて。
-
【C#】wavファイルの複数同時再生
-
Access2010でサブフォームのフ...
-
#1009: null のオブジェクト参...
-
車の運転時のメガネ 縁なし(...
-
VBで動的に作成したパネルの上...
-
WEBブラウザの重複起動の禁止
-
GetPrivateProfileString変値
おすすめ情報