外部swfの読み込み経過を表示したい - Flashプログラミング 問答収集 No:50
豆黄金
2010-08-24T12:10:41
http://mcs.hakuhin.jp/flash/atom50
8 日付:2010/08/24(火)12:10:41 ID:uBWlVKhKm5xp
http://mcs.hakuhin.jp/flash/50#50_8
2010-08-24T12:10:41
7 名前:状態変更 日付:2010/08/24(火)10:25:39 ID:t.shVpTd5ZDO
http://mcs.hakuhin.jp/flash/50#50_7
2010-08-24T10:25:39
この質問の状態を『解決』に変更しました。]]>
6 名前:豆黄金 日付:2010/08/23(月)23:41:32 ID:t.shVpTd5ZDO
http://mcs.hakuhin.jp/flash/50#50_6
2010-08-23T23:41:32
で・・・すみません、出来ました。また、最初に私が書き込んだソースでも出来ました。 原因は、swf+HTMLで出力しているか、swf単体+デバッグ用Flashプレイヤーやexe実行形式で出力しているかの差でした。 後者だと読み込み前述の通り読み込みが終わるまで表示が更新されない用です。そういうものなんですかねぇ。]]>
5 日付:2010/08/23(月)20:59:09 ID:rmf8Gh7/SGVS
http://mcs.hakuhin.jp/flash/50#50_5
2010-08-23T20:59:09
var ratio:Number; var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loader.load(new URLRequest("test.swf")); addEventListener(Event.ENTER_FRAME, drawtxt);//フレーム毎描画 function progressHandler(event:ProgressEvent):void { ratio = Math.floor(event.bytesLoaded/event.bytesTotal*100); } function drawtxt(event:Event):void { txt_status.text =String(ratio); } ]]>
4 名前:CS5で 日付:2010/08/23(月)20:49:17 ID:rmf8Gh7/SGVS
http://mcs.hakuhin.jp/flash/50#50_4
2010-08-23T20:49:17
]]>
3 名前:豆黄金 日付:2010/08/23(月)20:19:16 ID:t.shVpTd5ZDO
http://mcs.hakuhin.jp/flash/50#50_3
2010-08-23T20:19:16
しかし、試してみたのですが、やはり解決しませんでした。 具体的には 0% の代わりに NaN(値無し状態のpercentと思われ) が表示される以外は 100%になるまでテキストが更新されなず・・・といった感じです。 うーん・・・。 ]]>
2 日付:2010/08/23(月)17:38:19 ID:rmf8Gh7/SGVS
http://mcs.hakuhin.jp/flash/50#50_2
2010-08-23T17:38:19
var loader_obj : Loader = new Loader(); var info : LoaderInfo = loader_obj.contentLoaderInfo; var percent:Number; var url : URLRequest = new URLRequest("test.swf"); loader_obj.load(url); info.addEventListener (ProgressEvent.PROGRESS,LoaderInfoProgressFunc); info.addEventListener (Event.COMPLETE,LoaderInfoCompleteFunc); addEventListener(Event.ENTER_FRAME, drawtxt);//フレーム毎描画 function LoaderInfoProgressFunc (event : ProgressEvent):void { trace (Math.floor(event.bytesLoaded/event.bytesTotal*100) + "%"); percent = Math.floor(event.bytesLoaded/event.bytesTotal*100); } function drawtxt(event:Event):void { txt_status.text = percent + "%"; } function LoaderInfoCompleteFunc (event : Event):void { trace ("完了"); } ]]>
1 名前:豆黄金 日付:2010/08/23(月)14:11:53 ID:t.shVpTd5ZDO
http://mcs.hakuhin.jp/flash/50#50_1
2010-08-23T14:11:53
今、外部のswfをLoaderで読み込んで表示する単純なFlashを制作中です。 それで、読み込み状況をProgressEventを使ってテキストフィールドに表示したいのですが どうしても開始の0パーセントと、最後の100%しか表示されません。 load()メソッド開始と同時に画面も止まってテキストフィールドの値も変化せず読み込み完了後に100%と表示されるだけです var loader_obj : Loader = new Loader(); var info : LoaderInfo = loader_obj.contentLoaderInfo; info.addEventListener (ProgressEvent.PROGRESS,LoaderInfoProgressFunc); function LoaderInfoProgressFunc (event : ProgressEvent):void { trace (Math.floor(event.bytesLoaded/event.bytesTotal*100) + "%"); txt_status.text = Math.floor(event.bytesLoaded/event.bytesTotal*100) + "%"; } info.addEventListener (Event.COMPLETE,LoaderInfoCompleteFunc); function LoaderInfoCompleteFunc (event : Event):void { trace ("完了"); } var url : URLRequest = new URLRequest("test.swf"); loader_obj.load(url); 出力ログを見ると、一応途中経過(1%~99%)も出力されていはいますが、 この経過部分は最初の0%以後、ローディングが完了した後に1%~100%までが一気に表示されるだけで動的に数字が増えて要っている様子はないです。 ちなみにswfは50MB程度で、400枚の連番jpgがメインタイムラインに並んでいるものになっています。 何とかして読み込みの経過を表示させたいです。何とぞよろしくお願いします。 ]]>