No.1ベストアンサー
- 回答日時:
セキュリテイー的に安心かどうかはさておき,
連続して loadMovie する方法ですが,
例えば,親(読み込む)SWFと同じフォルダに
「movie1.swf」「movie2.swf」「movie3.swf」「movie4.swf」…
という感じに子(読み込まれる)SWFがあったとします。
そして「movie1.swf」から順に「movie2.swf」「movie3.swf」…と読み込まれるとします。
◎すごくシンプルな方法
親SWFの_rootに,例えば「loadMC」というインスタンス名のムービークリップを作ります。
このMCは小さくて透明のMCか,中に何も入っていない空のMCが良いと思います。
そして,親SWFのフレームのスクリプトに
_root.loadMC.loadMovie("movie1.swf");
と書けば,「loadMC」というインスタンス名のムービークリップに「movie1.swf」が読み込まれます。
またはボタンにスクリプトを書いて,ボタンで読み込みをさせても良いです。
そして,「movie1.swf」の最終フレームに,
_root.loadMC.loadMovie("movie2.swf");
と書いておきます。これで同じ「loadMC」に「movie2.swf」が読み込まれます。
同じ所に新たなムービーを読み込むと自動的に前のムービーは unload されるので,
unloadMovie(); は必要ありません。
「movie2.swf」の最終フレームには
_root.loadMC.loadMovie("movie3.swf");
「movie3.swf」の最終フレームには
_root.loadMC.loadMovie("movie4.swf");
… …
と書いて行けば良いわけです。
原理はこれだけです。簡単ですね。
◎少し確実な方法
上のシンプルな方法だと,「movie1.swf」→「movie2.swf」と切り替わるときにスムーズに流れなかったり,
場合によっては NowLoadind のような「読み込み中」画面をいちいち用意しなければならないかもしれません。
これを避けるためには,「movie1.swf」が終わる前に「movie2.swf」を読み込んでおくと良いです。
以下は,その1つの方法です。
親SWFに読み込むSWF数のレイヤーを余分に用意します。
そして,上のレイヤーから順に同じ位置に
「loadMC1」「loadMC2」「loadMC3」「loadMC4」…
というインスタンス名のムービークリップを置いて行きます。
「loadMC1」~「loadMC?」は全て同じムービークリップで良いです。
いちいち作る必要はなく,コピペで増やして行って,インスタンス名だけをそれぞれ付ければ良いです。
そして,親SWFのフレームのスクリプトに
_root.loadMC1.loadMovie("movie1.swf");
と書けば,「loadMC1」というインスタンス名のムービークリップに「movie1.swf」が読み込まれます。
またはボタンにスクリプトを書いて,ボタンで読み込みをさせても良いです。
「movie1.swf」の最終フレームから数フレーム~数十フレーム前には,
_root.loadMC2.loadMovie("movie2.swf");
と書いておきます。これで次の「loadMC2」に「movie2.swf」が読み込まれます。
(「movie2.swf」の最初のフレームには,stop(); と書いて止めておきます。)
そして,「movie1.swf」の最終フレームに,
_root.loadMC2.play();
_root.loadMC1.unloadMovie();
と書きます。これで,「loadMC2」に読み込まれた「movie2.swf」がスタートし,
「movie1.swf」自信はアンロードされます。
「movie2.swf」の最初のフレームには上の ( ) 内にも書いたように,
stop();
を書いておきます。これで読み込まれても自動的にスタートしません。
また,最初のフレームは空白フレームにしておくほうが良いかもしれません。
(「movie1.swf」より「movie2.swf」の方が大きい場合,見えてしまうかもしれないため。)
そして,あとは「movie1.swf」と同様。
「movie2.swf」の最終フレームから数フレーム~数十フレーム前には,
_root.loadMC3.loadMovie("movie3.swf");
「movie2.swf」の最終フレームに,
_root.loadMC3.play();
_root.loadMC2.unloadMovie();
と書きます。
「movie3.swf」以降は同様です。
=====================================
本題とは関係ないかもしれませんが
セキュリテイー的に安心というのは保存されないということですか?
もしそうだとしたら,少し間違っているかもしれません。
たしかにloadMovieをすると HTML には
<EMBED src="movie1.swf" ~~ </EMBED>
みたいにSWF名を書かなくて良いので,SWF名はHTMLのソースからはわかりません。
でも,ブラウザのキャッシュには読み込んだSWFやJPEGやTXTなどすべてが残ります。
手動でそこから保存しても良いですし,SWFを保存するソフトの半分くらいはキャッシュ情報から保存する物だと思います。
たしかに保存はされにくくなるかもしれませんが,案外ソースを読めない人の方がソフトでスラスラ取って行くかもしれません。
本題とは少しずれた余談でした。
この回答への補足
sassakunさん、今朝はありがとうございました。
外部swfをつぎつぎに読み込んでいく件ですが、シンプルなものはうまくいきました。けれど今度は、アクションスクリプトでうごかしている外部swfは上手くアクションがきいていないようです。_globalとかつかっていることが問題なのですかね。。。?親のswfにおおもとのアクションスクリプトをうつしてやらなければならないのでしょうか?難しいですね。。。私のやりかたがわるいのでしょうか。。。
すでに一つ目の外部swfが、ループを繰り返してしまったりして、ぜんぜん次にすすみません。どうしたらよいのでしょう。。。困った。。。
No.2
- 回答日時:
#1です。
補足の内容ではよくわかりませんが,タイムラインはほとんど使わず,
スクリプトで動かしている外部SWFがあるということでしょうか。
スクリプトで動かした場合はスクリプトで制しないとなりません。
また書かれたスクリプトによって制し方は全く違うので,答えることはできません。
少なくとも _global自体に問題があるのではなく,その中に書かれた関数に問題があるか,全く別のところに問題があるかだと思います。
スクリプトはスクリプトによって制しないとなりませんが,ひょっとしたら,できるかもしれない方法を書いておきます。
-----------------------------
onClipEvent (load) {
frm = 0;
}
onClipEvent (enterFrame) {
frm++;
if (frm == 30) {
_root.loadMC3.loadMovie("movie3.swf");
} else if (frm == 50) {
_root.loadMC3.play();
_root.loadMC2.unloadMovie();
}
}
----------------------------
こんなので↑できるかもしれません(できないかもしれません)。
ループしてしまうSWFの1フレームあたりに,透明もしくは空のムービークリップを作って,
上のようなスクリプトを書きます。
フレームで出てくるスクリプトを,フレームではなくスクリプトの中に入れているだけです。
---上のスクリプトの説明--------
//このムービークリップがよみこまれたら
onClipEvent (load) {
//変数frm (フレーム数のつもり) を 1 に設定
frm = 1;
}
//1フレーム進む時間ごとに以下を計算
onClipEvent (enterFrame) {
//変数 frm を1ずつ加算
frm++;
//もし flm が30になったら
if (frm == 30) {
//親SWFの loadMC3 に movie3.swf をロード
_root.loadMC3.loadMovie("movie3.swf");
//もし flm が30になったら
} else if (frm == 50) {
// loadMC3 をスタートさせる
_root.loadMC3.play();
//自分自身 (movie2.swf) をアンロード
_root.loadMC2.unloadMovie();
}
}
----------------------------
if (frm == 30) や if (frm == 50) の部分を調整すればうまく行くかもしれません。
単なる案です。うまく行かない可能性もありますが,方法の1つとして提示しておきます。
それ以上はわかりませんね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 結婚式・披露宴 著作権フリーとは? 3 2022/09/03 00:48
- 結婚式・披露宴 結婚式のムービーを作成しております。 外注で頼むのも一つなのですが、、 ある程度作れるスキルがあるの 5 2022/05/15 21:01
- その他(IT・Webサービス) micro soft teamsのカメラ設定について 1 2023/05/25 18:07
- 画像編集・動画編集・音楽編集 Corel VideoStudio Pro X8 で、SWFをmp4に変換する方法 1 2022/05/06 22:19
- Windows 10 windows付属のボイスレコーダー。雑音が入らないように録音するには? 1 2022/05/16 22:39
- iPhone(アイフォーン) アルバムがいくつかあって例えばAのアルバムのビデオを B〜Eに《アルバムに追加で移動させるとAには当 2 2023/01/31 15:45
- 片思い・告白 片想いの恋愛について マッチングアプリで知り合った女性がいまして、家もかなり近い(車で5分)のあって 3 2023/02/19 19:26
- 知人・隣人 コロナ禍で盛大に結婚式をあげる同級生について。 昔からの幼馴染がいます。 昔仲良かっただけで私は早く 4 2022/08/23 16:34
- パチンコ・スロット スマスロ北斗の拳についてです。継続バトル中に間違えて右から押してしまい、前半ムービーがあったので安心 1 2023/05/12 21:58
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ムービークリップの位置と角度...
-
C言語 バッファについて。
-
VB6のスクロールバー付きフレー...
-
画面全体にマスク
-
フレーム内のオプションボタン...
-
GetPrivateProfileString変値
-
フレームでのResponse.Redirect
-
Flash再生中につぎのフレームを...
-
A.S 3.0 キーボードでのフレー...
-
FLASH上でインラインフレームみ...
-
Flash lite1.0で カウントダウン
-
ハードディスク DVD 読み...
-
Directshowを使って動画を画像...
-
VBで動的に作成したパネルの上...
-
Flash Liteで作成したFlash待ち...
-
2Dゲーム作成する際、アニメー...
-
phpで音を鳴らす
-
Access2010でサブフォームのフ...
-
シンクライアントとMetaFrameの...
-
フレーム内に移動したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ActionScriptで決めた時間だけ...
-
流星が流れるような感じにした...
-
外部テキスト読み込み、横スク...
-
AS3.0です。外部ページへのリン...
-
Flash4でloadMovieの完了を知る...
-
Flashで右クリックメニューにつ...
-
フレーム内に移動したい
-
ソーラーパネルのアルミフレー...
-
HPを作りたい
-
【C#】wavファイルの複数同時再生
-
phpで音を鳴らす
-
ドロップフレームの計算をエク...
-
フレーム内のオプションボタン...
-
車の運転時のメガネ 縁なし(...
-
C#でDLLファイル読み込みを行う...
-
オプションボタンを矢印キーで...
-
WEBブラウザの重複起動の禁止
-
VBで動的に作成したパネルの上...
-
Access2010でサブフォームのフ...
-
webサイトに動画をはりつけ、ク...
おすすめ情報