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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     AS3.0 swfを順番に再生したい
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
yonetom
Åê¹ÆNo.45344
投稿日時: 2010-7-24 16:01
新米
居住地:
投稿: 3
使用環境:
AS3.0 swfを順番に再生したい
連番の外部swfをロードして順番に再生させたいと思っています。いろいろ探したのですが、AS3で良い資料がなく、こちらを使用させていただきます。

出来上がりのイメージとしては
*1.swfを再生(次のswfを読み込む)↓
*1.swfの再生が終了(swf内の最終フレームstop();まで再生)↓
*2.swfを再生(次のswfを読み込む)....
としたいと思っています。



以下、ソースです。
=============
package
{
import flash.display.DisplayObjectContainer;
import flash.display.MovieClip;

import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.IOErrorEvent;

import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;

public class ImageLoader2
{
var container:DisplayObjectContainer;
var imgHolder:MovieClip;
var imgLoader:Loader;
//var nextImgLoader:Loader;
var perFld:TextField;
var load_mc:MovieClip;
var correntNo:int = 0;
var frameNo:Number = 1;
var urlList:Array;

//コンストラクタ
function ImageLoader2 (container:DisplayObjectContainer,urlList:Array)
{
this.container = container;
//ステージセンター
var posX:Number = 0;//container.stage.stageWidth / 2;
var posY:Number = 0;//container.stage.stageHeight / 2;
//イメージを読み込むコンテナを作る
imgHolder = new MovieClip();
imgHolder.x = posX;
imgHolder.y = posY;
container.addChild (imgHolder);
//%表示フィールド
setupPercentField (posX, posY);
//loader作成
imgLoader = new Loader();// Loaderオブジェクトの生成
imgHolder.addChild (imgLoader);
imgLoader.contentLoaderInfo.addEventListener (Event.INIT, onInit);
imgLoader.contentLoaderInfo.addEventListener (Event.COMPLETE,onLoaded);
imgLoader.contentLoaderInfo.addEventListener (ProgressEvent.PROGRESS, onProgress);
imgLoader.contentLoaderInfo.addEventListener (IOErrorEvent.IO_ERROR, onIOerror);

container.addEventListener (Event.ENTER_FRAME, nextMovie);
//URL
var urlReq:URLRequest = new URLRequest(urlList[correntNo]);
//読み込み開始
imgLoader.load (urlReq);
}
function onInit (event:Event):void
{
// リスナーメソッドonInit()の定義
// ロードしたSWFへの参照をMovieClipに型変換
load_mc = MovieClip(imgLoader.content);
imgHolder.addChild (load_mc);// load_mcを表示リストに追加
load_mc.gotoAndPlay (frameNo++);// 再生開始
//次の動画を読み込む
correntNo++;
//URL
var urlReq:URLRequest = new URLRequest(urlList[correntNo]);
//読み込み開始
imgLoader.load (urlReq);
}
function nextMovie (event:Event):void
{
//新しいフレームに来たら
load_mc.gotoAndPlay (frameNo++);// 再生開始
//次の動画を読み込む
correntNo++;
//URL
var urlReq:URLRequest = new URLRequest(urlList[correntNo]);
//読み込み開始
imgLoader.load (urlReq);
}
//読み込み完了
function onLoaded (event:Event):void
{
//プログレスフィールド削除
container.removeChild (perFld);
perFld = null;
}
//途中経過
function onProgress (event:ProgressEvent):void
{
var per:Number = Math.round(event.bytesLoaded / event.bytesTotal * 100);
perFld.text = per + " %";
}
//エラー処理
function onIOerror (event:IOErrorEvent):void
{
trace ("IO_ERROR= "+event.text);
}
//%フィールド作成
function setupPercentField (posX:Number, posY:Number):void
{
perFld = new TextField();
perFld.width = 100;
perFld.x = posX - perFld.width / 2;
perFld.y = posY - perFld.height / 2;
perFld.autoSize = TextFieldAutoSize.CENTER;
var textFormat:TextFormat = new TextFormat();
textFormat.font = "_ゴシック";
textFormat.size = 48;
perFld.defaultTextFormat = textFormat;
container.addChild (perFld);
}
}
}

=============

最初タイマーで制御していたのですが、swfの長さが違うことからswf自体の終了判定ができないものかと...思ったのですがどうやらそういう機能がない?という事になりまして、タイムラインでうまく制御できないかと考えています。

以上よろしくお願い致します。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » AS3.0 swfを順番に再生したい yonetom 2010-7-24 16:01
     Re: AS3.0 swfを順番に再生したい mayor 2010-7-24 16:36
       Re: AS3.0 swfを順番に再生したい yonetom 2010-7-25 16:08
         Re: AS3.0 swfを順番に再生したい yonetom 2010-7-26 22:32

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