表題の方法について、以前の質問や他サイトを参考にSharedObjectというものを
使用するという事は分かったのですが、以下の方法をとったところ、初めての訪問でも
Movieが再生されず、最終フレームで止まったままとなってしまいます。
どこが間違っているのか皆目検討が尽きません。
今のFlaファイルは
■先頭フレーム:ラベル名「startMovie」
■2フレーム目
フレームActionとして
var my_so = SharedObject.getLocal("MyCookie");
if (my_so.data.haveVisited != 1) {
my_so.data.haveVisited = 1;
my_so.flush();
this.gotoAndPlay("startMovie");
} else {
this.gotoAndStop("endMovie");
}
■最終フレーム:ラベル名「endMovie」
ボタンのオブジェクトActionとして
on (release) {
this.gotoAndPlay("startMovie");
}
フレームActionとして
this.stop();
となっています。
どうしたら初めての訪問でMovieが再生され、2度目の場合は
最終フレームでSTOP、REPLAYボタンで再生、という風にできるでしょうか。
どうかアドバイスの程宜しくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1です。
>> 初めての訪問でも
>> Movieが再生されず、最終フレームで止まったままとなってしまいます。
>> どこが間違っているのか皆目検討が尽きません。
少なくとも見当はつきましたか?
#1で書きましたように,別に間違っているわけではないですが,書いている内容が変なのです。
初めての訪問でもMovieが再生されず、最終フレームで止まったままとなってしまうように書いてあるので,そうなるというだけのことです。
細部も検討&検証 してみましたが,特に間違っているところはないようです。
ただ,書かれている内容だとPCは正常に動きますが人が見ると変な動きになります(なると思います)。
ムービー全体がどのような構成になっているのかがわからないので,
どうすれば解決するのかは,こちらとしてはわかりませんが,
もし,普通のムービーのように
最初の方からダーっとアニメージョンが流れて,最後のフレームでストップするようなアニメーションであれば,スクリプトはそのままで,
■先頭フレーム:ラベル名「startMovie」
↓ 変更 ↓
■3フレーム目:ラベル名「startMovie」
のように,ラベル名の書いたフレームを フレーム3 以降にすれば,
初回訪問では「startMovie」から最終フレームまでアニメーションが流れて,最終フレームのボタンをクリックすると,「startMovie」まで戻ってまたアニメーションが流れる。
2回目以降は2フレームまで進んだ後,すぐに最終フレームに行ってストップし,最終フレームのボタンをクリックすると,「startMovie」まで戻ってアニメーションが流れる。
というものになります。
何度も状況を変えて,solファイルも1回1回削除して,
繰り返し実験してみましたがこの方法で大丈夫でした。
実際は フレーム3 からアニメーションが始まるものなのかどうかはわかっていません。
普通の場合,そうすれば解決するということです。
===以降は先の話===================
もし以前の質問でご覧になられていたらわかると思いますが,
その,いきなり最終フレームに飛ぶパターンは,ローカルPC上ではちゃんと動いても,サイトにUPして見てみると途中で止まって動かなくなる場合があります。
場合があるというより,おそらく必ず途中で止まって動かなくなると思います。
それは,ムービーが完全に読み込まれていないのに,最終フレームまでジャンプするように書いてあるからです。
最終フレームまで読み込まれていないと,最終フレームが見つからないので,ムービーは停止します。
解決策はよく見る "Now Loading" とか出てくるようなものを用意して,ロード中はフレーム2に進ませないような措置をすることです。
簡易的なものであれば,
フレーム1に,"フレーム1にだけ" 存在するムービークリップを作って,
そのムービークリップに
-------------------------------
onClipEvent (load) {
_root.stop();
}
onClipEvent (enterFrame) {
if (_root.getBytesLoaded()>=_root.getBytesTotal()) {
_root.play();
} else {
_root.stop();
}
}
-------------------------------
と書けば,ムービーが読み込まれるまで,フレーム1で止めておく物ができます。
ただ上記の物は,単にムービーを止めているだけで,何の装飾も動きもないものです。
ネット上や書籍などで探せば,いわゆる "Now Loading" 画面のサンプルなどが見つかると思います。動く部分とか,その好みとかは文字だけでは伝えにくいので,そのようなサンプルを参考にされる方が良いと思います。
わざわざ「startMovie」とかいうラベル名を存在させて,
なぜか,フレーム2 に SharedObject.getLocal を持って来ているのは,そのためではないのですか?
フレーム1 を"Now Loading" 画面 にするために,フレーム2 に SharedObject.getLocal を持って来ているのだと思いますが。
先頭フレームがラベル名「startMovie」のままだと, "Now Loading" 画面 に戻るということになり,ますます変になりますよ。
No.1
- 回答日時:
細部を検討,検証していませんが,
ざっと見たところ,完全に変です。
まず初回,そのサイトを訪問します。
当然 フレーム1 ラベル名「startMovie」 が一瞬表示されそのまま通過します。
次に フレーム2 に進みます。
まだsolファイルは保存されていないので haveVisited != 1 の状態です。
ここで haveVisited = 1 が与えられ,
gotoAndPlay("startMovie"); の指示を受けて,
また フレーム1 ラベル名「startMovie」 に戻ります。
そして再び フレーム2 に到達します。
この時点で, haveVisited == 1 の状態ですから haveVisited != 1 ではないので,elseの方に行きます。
gotoAndStop("endMovie"); の指示を受けて最終フレーム:ラベル名「endMovie」に飛びます。
1回目の訪問の時だけほんの少しもたつくかもしれませんが,
1回目でも2回目でも何回目でも,最終フレーム:ラベル名「endMovie」に飛びます。
なぜ,
this.gotoAndPlay("startMovie");
を書かれているのかが疑問です。
this.play();
または無記入で良いのではないでしょうか。
>> ■最終フレーム:ラベル名「endMovie」
>> ボタンのオブジェクトActionとして
>> on (release) {
>> this.gotoAndPlay("startMovie");
>> }
これも当然変ですね。
gotoAndPlay("startMovie");
でフレーム1に戻ったら,次はフレーム2です。
haveVisited == 1 の状態ですから, haveVisited != 1 ではないので elseの方に行きます。
gotoAndStop("endMovie"); の指示を受けて最終フレーム:ラベル名「endMovie」に飛びます。
つまり,最終フレームに戻ってしまいます。
細部を検討,検証していません。
他にも変な部分があるかもしれませんが,大まかに見て,
スクリプトが理想状態で実行された場合とりあえず変です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フレーム内に移動したい
-
Homepage Managerのフレームエ...
-
富士通FMV-C600のHDD交換
-
ビルダーでのフレームって縦幅...
-
フレーム数を直感的に数えたい
-
グリーティングカード
-
処理の速い当たり判定について[...
-
ドロップフレームの計算をエク...
-
携帯アイコンメニューのフォー...
-
HTMLのフレームとテーブル...
-
ado db
-
ActionScriptで、押したボタン...
-
PCでのツイッター閲覧について
-
外部swf内でattachSoundしたサ...
-
FLASH lite1.1での質問というか...
-
Flashゲームのセーブ機能の作り方
-
flvを読み込んだときの処理につ...
-
AS3.0で子MCから他の子MCの...
-
C# WEB表示について
-
画像をキラーンと光るように見...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フレーム内に移動したい
-
Access2010でサブフォームのフ...
-
フレーム内のオプションボタン...
-
車の運転時のメガネ 縁なし(...
-
ソーラーパネルのアルミフレー...
-
ドロップフレームの計算をエク...
-
ボタンクリックで本のページを...
-
動画の遅延再生プログラム
-
トグルボタンの排他制御でご教...
-
フレームでのResponse.Redirect
-
B2ポスターフレームの自作
-
2Dゲーム作成する際、アニメー...
-
cisco catalystのトラブルシュ...
-
リンク設定時の「ターゲット」...
-
エクセルVBA フレーム内のイベ...
-
Directshowを使って動画を画像...
-
#1009: null のオブジェクト参...
-
フレーム内でのリダイレクトに...
-
2倍速を等速動画に(車載動画)
-
ActionScript 3.0についての質...
おすすめ情報