トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     Loaderコンポーネントを使って複数のSWFファイルを起動する
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
jazzman
Åê¹ÆNo.6218
投稿日時: 2004-4-13 8:37
新米
居住地: 福井
投稿: 3
使用環境:
WinXP,Flash MX2004
Loaderコンポーネントを使って複数のSWFファイルを起動する
2個以上のSWFファイルがあります。新規FLASHファイルで複数のSWFファイルが起動できるスクリプトをコーディングしています。

SWFファイルを起動するところまではわかったのですが、SWFファイルのムービーが終了したことを判断するスクリプトがわかりません。どなたか教えていただけないでしょうか。

ちなみに私の環境は: WinXP, MX2004
コーディング内容は下記の通りです。


// 環境変数の宣言 =================================================
var movieSet:Array = new Array(); // 起動するSWFファイルを管理する変数
var iMovieNum:Number = 0; // 起動するムービーをカウントする変数

// 処理内容 =====================================================
// 起動するSWFファイルを追加する
movieSet.push("とりあえずその1.swf"); // == movieSet[0] = "とりあえずその1.swf"
movieSet.push("とりあえずその2.swf"); // == movieSet[1] = "とりあえずその2.swf"

// SWFファイルを順に起動する
for (iMovieNum = 0; iMovieNum < movieSet.length; iMovieNum++) {
   // Loaderコンポーネント「ldrMovie」にSWFファイルを起動する
   ldrMovie.loadMovie(movieSet[iMovieNum]);
   // SWFムービーが終了する・・・どうやってしたらわかるの??(^^;
}


宜しくお願いします。
笠居トシヒロ
Åê¹ÆNo.6225
投稿日時: 2004-4-13 11:34
マスター
居住地: 兵庫
投稿: 870
使用環境:
SnowLeopard, Safari4, CS4
Windows7, IE8, CS4
Re: Loaderコンポーネントを使って複数のSWFファイルを起動する
起動される側のSWFから「再生終わり」を申告させればいいでしょう。
んで、forループじゃ、順番にひとつずつSWFを再生することはできないですね。
forだと、あくまでも1フレームのターンで繰り返しが終了してしまいますから。

最初のムービーの再生と、ムービーの終了を看視して次のムービーを再生開始する、
ってのは別々に考えたほうが簡単ですよ。再生終了は、最初に言ったように各SWFから自己申告ね。


----------------
笠居 マッドシー
http://www.mad-c.com/

jazzman
Åê¹ÆNo.6497
投稿日時: 2004-4-23 13:12
新米
居住地: 福井
投稿: 3
使用環境:
WinXP,Flash MX2004
Re: Loaderコンポーネントを使って複数のSWFファイルを起動する
To: 笠居トシヒロ様 aka 笠居 マッドシー様


投稿の程ありがとうございます。返答が遅れ申し訳ありません。
ムービーの終了を監視して次のムービーを再生開始する、とのことですが、これはどのようにするのでしょうか?できればサンプルコードもお願いしたいのですが。

以上、宜しくお願い致します。
jazzman
Åê¹ÆNo.6508
投稿日時: 2004-4-23 16:11
新米
居住地: 福井
投稿: 3
使用環境:
WinXP,Flash MX2004
Re: Loaderコンポーネントを使って複数のSWFファイルを起動する
To: 笠居トシヒロ様 aka 笠居 マッドシー様


「ムービーの終了を監視して次のムービーを再生開始する」、との内容で私のほうでこうではないかと思われるスクリプトを作ってみました。


まとめますと:
・LocalConnectionクラスを使用し、ムービーを起動する側で相手の様子を伺えるような状態にする。
・ムービーを起動する側は<受信側>、ムービーがロードされる側は<送信側>になる
・<送信側>で「ムービー終わりましたよ」というメッセージを受信側に送る。スクリプトはフレームの一番最後。
・<受信側>は次のムービーを起動する

以下、サンプルコードを添付します。


<サンプルコード:受信側>
// 環境変数の宣言 =================================================
var movieSet:Array = new Array(); // 起動するSWFファイルを管理する変数
var iMovieNum:Number = 0; // 起動するムービーをカウントする変数

// 処理内容 =====================================================
// 起動するSWFファイルを追加する
movieSet.push("とりあえずその1.swf"); // == movieSet[0] = "とりあえずその1.swf"
movieSet.push("とりあえずその2.swf"); // == movieSet[1] = "とりあえずその2.swf"
movieSet.push("とりあえずその3.swf"); // == movieSet[2] = "とりあえずその3.swf"

// SWFファイルを順に起動する
ldrMovie.loadMovie(movieSet[iMovieNum]); // まずは「0」から

// 受信する側の変数をセットする。
receiver = new LocalConnection();
// 送信側でムービーの再生が終了したら
receiver.finish = function() {
iMovieNum++; // カウントをアップ
// 起動するSWFファイルの総数よりカウント数が少ないのなら
// 次のswfファイルのムービーを起動する
// それ以外なら処理は終了する
if (iMovieNum < movieSet.length) {
ldrMovie.loadMovie(movieSet[iMovieNum]);
} else {
// 処理を終了する
// もしリピートさせたいのなら
// 変数「iMovieNum」を0にすることで対処する。
receiver.close(); // コネクションクローズ
ldrMovie.unloadMovie();
}
}
// "myMovie"というコネクタ名で相手の様子を伺う
receiver.connect("myMovie");


<サンプルコード:送信側>
// 環境変数の宣言 =================================================
var sender:LocalConnection; // 受信側のSWFファイルに命令を送る変数

// 処理内容 =====================================================
sender = new LocalConnection();
sender.send("myMovie","finish")



もし上記外で良いコーディングがありましたら教えてくださいませ。

根本的な問題点「Loaderコンポーネントを使って複数のSWFファイルを起動する」についてはとりあえず解決致しましたことを報告いたします。

以上、宜しくお願い致します。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops