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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     プリローダーに関して
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
PENGPENG8
Åê¹ÆNo.47645
投稿日時: 2011-6-29 2:36
半人前
居住地: 愛知県
投稿: 49
使用環境:
Windows7Pro、FlashCS5Professional
プリローダーに関して
メインのタイムラインの1フレーム目にプリローダー用のMCだけを置いています。
そのMCには進捗をしめす棒状の塗りを含んだMC(インスタンス:bar)と
ダイナミックテキストボックス(インスタンス:per)をおいています。
またこのMCの1フレーム目に以下のようなスクリプトを記述しています。

これをプレビュー?「表示」?「ダウンロードのシュミレート」で確認すると
なぜか最後の方の96%くらいから100%までの間のアニメーションしか表示されません。
0%から95%くらいまでは何も表示されないままロードが進みます。
実際にWebサーバーに置いて実験してみても同様の一瞬しか表示されません。
通信速度の問題もあるので携帯の3Gで通信してみましたが同様でした。
根本的に何か間違えていますでしょうか?よろしくお願いします。

import flash.display.*;
import flash.events.*;

var mainTimeline:MovieClip = MovieClip(this.parent);
mainTimeline.stop(); 

var info:LoaderInfo = mainTimeline.loaderInfo;
info.addEventListener(ProgressEvent.PROGRESS, loadProgressHdl);

function loadProgressHdl(e:ProgressEvent) {
	if(info.bytesLoaded == info.bytesTotal){
		per.text = "COMPLETED";
		info.removeEventListener(ProgressEvent.PROGRESS, loadProgressHdl);
		mainTimeline.play();
		delete this;
	}else{
    	    var loadPer:Number = info.bytesLoaded / info.bytesTotal;
		trace(loadPer);	
		loadPer = Math.round(loadPer * 100);
        bar.scaleX =loadPer*5);
    	    per.text = loadPer.toString() + "%";
	}
}
野中文雄
Åê¹ÆNo.47646
投稿日時: 2011-6-29 4:58
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: プリローダーに関して
「メインのタイムラインの1フレーム目にプリローダー用のMC」が表示される前に、「95%くらい」のデータがロードされているからではないでしょうか。

参考:「『最初のフレームに書き出し』しない場合」(PDF)
引用:
PENGPENG8さんは書きました:
メインのタイムラインの1フレーム目にプリローダー用のMCだけを置いています。
...[中略]...
これをプレビュー?「表示」?「ダウンロードのシュミレート」で確認すると
なぜか最後の方の96%くらいから100%までの間のアニメーションしか表示されません。
0%から95%くらいまでは何も表示されないままロードが進みます。


----------------
 

PENGPENG8
Åê¹ÆNo.47647
投稿日時: 2011-6-29 9:51
半人前
居住地: 愛知県
投稿: 49
使用環境:
Windows7Pro、FlashCS5Professional
Re: プリローダーに関して
野中様
「プリローダーのMCが表示される前」というヒントとPDFありがとうございます。
そういえばプロジェクト内で使っている約20個くらいのクラスのリンケージで「1フレーム目に書き出す」があると思い、
とりあえず全部、外し、タイムライン上に配置せず、プログラム上でコンストラクタを使って
インスタンスを作成しているオブジェクトについては、ローダの実行が終わった2フレーム目でimportしました。
しかし動作そのものは正常なのですが、「ダウンロードのシュミレート」で確認すると、
やはり95%位からしかプリローダーのアニメーションが始まりませんでした。
まだ「プリローダーのMCが表示される前」のロードが、ほぼ全部にわたって行われている現象です。
全カスタムクラスとコンポーネント関係のクラスを確認したのですが、1フレーム目の書出しにチェックは入っておりません。
このような状況なのですが、申し訳ありませんが更にヒントを頂けないでしょうか。
よろしくお願いします。
ひろゆき
Åê¹ÆNo.47651
投稿日時: 2011-6-29 13:04
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: プリローダーに関して
単純に2フレーム目以降にしか、素材が配置されていないのであれば、
そのような現象が発生するとは考えにくいです。

カスタムクラスとかコンポーネントとかを外して確認すべきでは?
制作中のもので検証しようとしても、複雑に入り組んだ状態で検証できないように思います。


----------------
質問する際は、回答者に具体的な情報を与えてください。

野中文雄
Åê¹ÆNo.47652
投稿日時: 2011-6-29 13:16
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: プリローダーに関して
「ヒント」としては、情報はよくお読みになり、慎重に試されることでしょう。なぜ、インスタンスを「タイムライン上に配置」されないのですか。また、原因をつきとめ、解決策を探るのに、「約20個くらい」も必要でしょうか。

なお私の環境では、標準のコンポーネントの[1フレーム目に書き出し]を外し、「2フレーム目でimport」しただけでは、インスタンスをタイムラインに正しく表示できません。
引用:
PENGPENG8さんは書きました:
そういえばプロジェクト内で使っている約20個くらいのクラスのリンケージで「1フレーム目に書き出す」があると思い、
とりあえず全部、外し、タイムライン上に配置せず、プログラム上でコンストラクタを使って
インスタンスを作成しているオブジェクトについては、ローダの実行が終わった2フレーム目でimportしました。
しかし動作そのものは正常なのですが、「ダウンロードのシュミレート」で確認すると、
やはり95%位からしかプリローダーのアニメーションが始まりませんでした。


----------------
 

PENGPENG8
Åê¹ÆNo.47655
投稿日時: 2011-6-29 18:11
半人前
居住地: 愛知県
投稿: 49
使用環境:
Windows7Pro、FlashCS5Professional
Re: プリローダーに関して
ひろゆき様
ありがとうございます。ちょっとムリを押し通そうと焦ってしまってますので、
ご指摘いただきましたように、ごく単純な構成から1つ1つ追加していくことで確認しようと思います。

野中様
さらにコメントありがとうございます。
そこからすると各クラスのインスタンスは必要になった(もしくはその手前の)フレームに「置く」ことと
必要になったフレームで動的に生成することは、今回の事象に関して
大きな違いがあるという指摘を頂いたと考えています。

ひろゆき様にも指摘いただきましたように、
「2フレーム目以降にしか、素材が配置されていないのであれば、
そのような現象が発生するとは考えにくいです。」ということですので
1フレーム目に書出しを一切しなくなった今回の状態は2フレーム目以降にしかインスタンスを配置していない、
もしくは「2フレーム目以降でしかインスタンスを生成していない」というものです。
ということは、問題になりそうなのは「2フレーム以降であっても
動的なインスタンス生成」にありそうに思っています。

その動的生成を一切しない状態で(必要なものはタイムラインに配置する形)確認しようと思います。
まずは一旦、ご指摘いただきましたポイントをまとめ、こういったことを確認した後、再度、
質問させていただ抗と思います。よろしくお願い致します。

引用:
なぜ、インスタンスを「タイムライン上に配置」されないのですか。・・・・
なお私の環境では、標準のコンポーネントの[1フレーム目に書き出し]を外し、「2フレーム目でimport」しただけでは、インスタンスをタイムラインに正しく表示できません。

失礼しました。import後、new()でインスタンスの動的生成を行っております。
PENGPENG8
Åê¹ÆNo.47656
投稿日時: 2011-6-29 23:39
半人前
居住地: 愛知県
投稿: 49
使用環境:
Windows7Pro、FlashCS5Professional
Re: プリローダーに関して
ひろゆき様、野中様
頂きましたお答えの通り、フレームやクラス内で動的に生成しているインスタンスを全て止め
全部、メインのタイムライン上に配置して調整しなおしたところ
ちゃんとプリローダーも数%の所から始まるようになりました。

各クラスを1フレーム目に書き出さなくても、動的生成している場合、
結局、1フレーム目のプリローダー用のMCが表示されるまでにロードされるということですね。

管理上、動的生成の方が楽なケースが多いと感じていましたので、どちらかというと、
そのようにしていました。
今回のことで少しですが、オブジェクトの扱いの理解が深まったと思います。
たいへん助かりました。ありがとうございました。
野中文雄
Åê¹ÆNo.47665
投稿日時: 2011-7-1 3:12
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: プリローダーに関して
インスタンスをタイムラインに配置しておくという意味が、正しく理解されていないようです。もっとも、[ヘルプ]に説明がほとんどなく、バージョンによって扱いも少し変わっています。以下にまとめましたのでご参照ください。

[シンボルプロパティ]のリンケージで[1フレーム目に書き出し]とは
引用:
PENGPENG8さんは書きました:
頂きましたお答えの通り、フレームやクラス内で動的に生成しているインスタンスを全て止め
全部、メインのタイムライン上に配置して調整しなおしたところ
ちゃんとプリローダーも数%の所から始まるようになりました。

各クラスを1フレーム目に書き出さなくても、動的生成している場合、
結局、1フレーム目のプリローダー用のMCが表示されるまでにロードされるということですね。


----------------
 

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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