プロが教える店舗&オフィスのセキュリティ対策術

FLASHの初心者です。

以下の物が作りたくてチャレンジをしております。
構成的には、一個の画面と、一個のボタンがあり、
あらかじめFLASHムービーを何個か作り、
一個のFLASHファイルに読み込んで、
ボタンを押すと一個目のムービーが再生、最終フレームで停止、
もう一回ボタンを押すと次のムービーが再生、最後…
という具合にしていきたいです。
おそらくアクションスクリプトを使用して作らなければならないと
思うのですが、うまくできないのです…

ついでにもう一つ、お聞きしたいことがあります。
フレーム数を右下に常に表示させたいです。
この方法も教えて欲しいです。

使用ソフトはFLASH CS3で、アクションスクリプトは3.0を使っています。
説明下手ですみません…
よければ誰か助けてください>△<

「FLASHでボタンを押すと、FLASHム」の質問画像

A 回答 (1件)

以下に1つの例を書きます。




◎ファイル階層構造

 任意のフォルダ
  ├ ○○.html (○○.swf を表示)
  ├ ○○.swf (親の Flash)
  ├ aaa.swf
  ├ bbb.swf
  └ ccc.swf



◎「○○.swf」内の手動配置インスタンスの階層構造

 rootなど任意の階層
  ├ load_mc(外部SWFを配置するムービークリップ)
  ├ load_btn (外部SWFのロードを開始させるボタン)
  └ frame_txt (外部SWFの再生フレーム表示テキストフィールド)

 ※load_mc,load_btn,frame_txt はインスタンス名
 ※下図↓ も参照のこと



◎///rootなどの階層のフレームに書くスクリプト////////////////////

//外部SWFファイル名登録用配列の作成
var swf_arr:Array = new Array();
swf_arr.push("aaa.swf");
swf_arr.push("bbb.swf");
swf_arr.push("ccc.swf");

//カウント用変数 cnt を用意
var cnt:int = 0;

//Loaderインスタンス swf_ldr を作成
var swf_ldr:Loader = new Loader();
//「load_mc」 内に 「swf_ldr」 を配置
load_mc.addChild(swf_ldr);

//「load_btn」にイベントリスナーを登録(クリック時実行,実行関数loadSWF)
load_btn.addEventListener(MouseEvent.CLICK,loadSWF);

//関数 loadSWF を定義
function loadSWF(evt:MouseEvent):void {
//変数 my_str に SWFファイル名配列 の cnt 要素を代入
var my_str:String = swf_arr[cnt];
//URLRequest に my_str をセット
var my_url:URLRequest = new URLRequest(my_str);
//Loaderインスタンス swf_ldr にその SWF をロード
swf_ldr.load(my_url);
//もし cnt が SWFファイル名配列 の最終要素未満であれば
if (cnt<swf_arr.length-1) {
//cnt に 1 を加算
cnt++;
} else {
//そうでない場合は cnt を 0 に戻す
cnt=0;
}
//「load_btn」 ボタン機能を無効にする
evt.target.mouseEnabled = false;
}

//この階層にイベントリスナーを登録(毎フレーム実行,実行関数watchFrame)
this.addEventListener(Event.ENTER_FRAME,watchFrame);

//関数 watchFrame を定義
function watchFrame(evt:Event):void {
//ロードした SWFコンテンツ をムービークリップに変換
var my_mc:MovieClip = MovieClip(swf_ldr.content);
// もし myMC が null でない場合
if (my_mc != null) {
// SWFコンテンツの再生フレームを frm に代入
var frm:int = my_mc.currentFrame;
// 「frame_txt」 にSWFコンテンツの再生フレームを表示
frame_txt.text = frm;
// もし SWFコンテンツの再生フレームが最終フレーム になれば
if (frm == my_mc.totalFrames) {
// SWFコンテンツの再生を停止
my_mc.stop();
// 「load_btn」 ボタン機能を有効にする
load_btn.mouseEnabled = true;
}
}
}

///////////////////////////////////////////////////////////////////


↑コピペ可能です。
 
「FLASHでボタンを押すと、FLASHム」の回答画像1
    • good
    • 0
この回答へのお礼

投稿者です。
丁寧なご説明ありがとうございます。
まだ試してはいないのですが、
丁寧な回答に感動し、早速メールさせていただきました!
ありがとうございます。
参考にやってみて、またお返事させていただきます!!

お礼日時:2009/07/27 23:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!