No.1
- 回答日時:
「Now Loading」だけのファイルを作ります。
そのファイルを実行しているときに、裏でコンテンツファイルを読み込むよう設定し、読み込みが完了するまでは「Now…」のほうをリロードするようにします。
読み込みが完了したら、コンテンツファイルに飛ぶようにすればOKです。
この回答への補足
リロードのやり方が分からないのですが、その前に現在表示されている画面の上にポップアップのように「Now・・・」の画面を表示出来るのでしょうか?。
現在の画面の構成は、HTMLで2つのFLASHファイルを利用しています。一つは上部に100Pixcel程度のヘッダー部です。
その下に縦480Pixcel、横750PixcelのFLASHファイルがあります。そのファイル(今回のFLASHの中身)の構成は、上部にサムネイル画像群の説明文があり、その下にサムネイルの窓、その下にサムネイルをクリックされた時に拡大表示するためのエリアとテキストエリアが設けてあります。
今回「Now・・・」と表示したいのは、サムネイル表示窓辺りです。
No.2
- 回答日時:
プリロードの設定について、詳しく書かれているサイトがあるのでそちらを参照してください。
http://www.condo.fromc.jp/flash/memo/index4.html
参考URL:http://www.condo.fromc.jp/flash/memo/index4.html
No.3ベストアンサー
- 回答日時:
http://okweb.jp/kotaeru.php3?q=989128
http://okweb.jp/kotaeru.php3?q=992878
と同じムービークリップの構成を前提に話を進めますが。
まず、読み込み完了率についてですが。
LoadVars にも MovieClip にも、読み込む総容量や読み込まれた容量を把握する getBytesTotal や getBytesLoaded というメソッドがあり、これを元に完了率は算出できます。
しかし、今回は LoadVars で画像を1つずつ読み込み、それが成功したらムービークリップにまた読み込み直す、というロジックでしたので、全体のうちのどのくらい読み込みが終わったかの把握が難しいです。
LoadVars で読むデータの容量は LoadVars の、ムービークリップで読むデータの容量は MovieClip の getBytes*** でないと把握できないというカベもあるのですが、何より、読み込む画像の総数がいつまでもはっきりしないため、全体の容量の把握ができません。
また、全体の容量が判明する頃には loadMovie の読み込みがかなり進んでいるでしょうから、それから完了率を表示しても今さらという感じで、あまり意味もないでしょう。
そんなわけで、読み込み完了率の表示は無理だと思います。
とりあえず何かしらのアニメや表示をしたいだけでしたら、簡単なアニメのムービークリップを作り、ロードが完了するまで、これを Thumb_nail シンボル内に配置してはいかがでしょう。
フラグが -1 になった時に読み込みの命令を出すのは終了しますが、読み込み作業そのものはその瞬間に終わることはまずなく、その後もしばらく続くと思います。
Now Loading の表示は、完全に読み込みが終わるまで表示されていないとおかしいですよね。
ということは、loadMovie での読み込みが終わるまで待つ処理が必要になります。
フラグが -1 になったら、ここでタイムラインを止めずに、もう少しフレームを追加して先に進みます。
MivieClip オブジェクトには、loadVariables や loadMovie の実行が終了した時に発生する data というイベントがあります。これで、1つ1つの画像の読み込みの終了は検出できます。
では、”全部のムービークリップで読み込みが終わったかどうか”を知るには、どうしたらいいでしょうか?
簡単なのは、ファイルの総数と読み込みが済んだファイルの数を照合することです。
ファイルがいくつあったかは、変数に保存されているはずです。もう1つ変数を用意し、data イベントが発生するごとにこの変数をカウントアップし、この数とファイルの数が一致していれば、全ての画像を読み終えたと見なすことができます。
MovieClip.onPress などと同じで、***.onData = function () ・・・と書く書き方はあります。これが使えればフレームにも data イベントを利用するスクリプトが書けます。
ところが、実は、duplicateMovieClip や loadMovie などで動的に生成されたムービークリップで使おうとしても、正常に機能しません。(そういう仕様になっています)
しかし、duplivateMovieClip のコピー元であるオリジナルのムービークリップに onClipEvent(data) を設定しておくと、複製されたムービークリップにも、同じ内容の onClipEvent(data) が設定されます。
Thumb_nail の sheet に、画像を読み込むムービークリップのコピー元として、target というムービークリップが配置されていたかと思います。
sheet のシンボルの編集画面を開き、target のインスタンスに
onClipEvent( data )
{
//読み込みの済んだファイル数を更新
_parent._parent.loaded_files++;
}
というスクリプトを設定してください。
target から見ると、Thumb_nail は親( sheet )の更に親ということになります。ターゲットパスは少々鈍くさくなりますが、そこは仕方ないですね。
Thumb_nail のフレーム1で、loaded_files = 0; という変数を初期設定に追加します。
読み込みの進行状況を把握するフラグが -1 になったら、ここで stop を入れずに先に進みます。
次のフレームはスクリプトを設定せず、読み込みが終わるまで待つためのフレームにします。
その次のフレームで、loaded_files の値を監視します。画像がクリックされた時の処理やスクロールバーの設定も、ここに移してくると分かりやすいかと思います。
//全ファイルの読み込みが完了した場合
if( loaded_files == ( var_ctr - 1 ) )
{
var i;
//画像がクリックされた時の処理
for( i = 1 ; i <= ( var_ctr - 1 ) ; i++ )
{
//サムネイルに管理番号を設定
sheet[ "b" + i ][ "image_no" ] = i;
sheet[ "b" + i ].onPress = function ()
{
//何番目のサムネイルがクリックされたかを知らせる
_root.item_no = this.image_no;
_root.gotoAndStop( 10 );
};
}
//スクロールバーの設定
sc_bar.setScrollProperties( 50 , 0 , ( var_ctr - 1 ) * 90 - 360 );
}
//読み込みが終わらないうちは完了を待つ
else
{
gotoAndPlay( 5 );
}
Thumb_nail のスクリプトの流れをまとめますと。
フレーム1:初期設定
フレーム2: LoadVars でファイルの確認をする
フレーム3:待機( LoadVars の読み込み終了待ち)
フレーム4:ファイルがあればムービークリップを複製して読み込み、次のファイルを探す。なければ先に進む
フレーム5:待機(全 loadMovie の読み込み終了待ち)
フレーム6:読み込みが終わるまで待ち、終了時に画像やスクロールバーなどの設定をして先に進む
フレーム7:タイムラインを止める
こうして見ますと、Now Loading の表示は、フレーム1~6まで表示されていればいいことになります。
簡単なアニメのムービークリップを作り、Thumb_nail にレイヤーを1つ用意して、フレーム1に Now Loading のムービークリップを配置します。フレーム6に「フレームを挿入」でフレームを入れて、フレーム1と同じ内容を6まで繰り返します。
ムービークリップは自分自身のタイムラインを持っていて、親のタイムラインとは独立して動きます。親である Thumb_nail の再生フレームが変わっても、Now Loading のムービークリップは自分自身のタイムラインに従って動きます。
-----------------
http://okweb.jp/kotaeru.php3?q=989128 の#2でちょっとご紹介しました MovieClipLoader クラスでは、読み込みが終わった時だけではなく、読み込みが始まった時や失敗した時・読み込んだものの初期化が終わって利用できるようになった時など、細かいイベントが利用できます。
例えば、今回 LoadVars で読み込みが完了したら次を読む・・・としていた部分を、読み込みが始まった=ファイルがあるので次を探しに行く(この間、先の読み込みは引き続き続行)というように変更できます。1つずつ読み込み完了を待って存在を確認するまでもなく次のファイルを探しに行けますし、loadMovie で読み直す必要もありませんから、読み込みにかかる時間を短縮できます。
また、早い段階でファイルの総数が判明しますので、全体の容量の把握が簡単です。総容量が分かれば読み込み完了率も正確に計算できますから、Now Loading ○%という表示も可能です。
イベントを受け取る専用のオブジェクト(リスナーオブジェクト)を登録するという発想がちょっと難しいところですが、作品のクオリティは格段に高くなります。
読み込み関連のスクリプトが変わるだけで、基本的な考え方やスクロールバー関連の処理はそのまま流用できます。
お急ぎでなければ、こちらを研究して移行してはいかがでしょうか。
この回答への補足
ありがとうございます。
教えて頂いた以降、結構処理を変更しました。
サムネイルの読込みとクリックされた時に表示する拡大画像の読込みがあると言う事、元々商品コードがファイル名になっていた事などから、コントロールファイルを用意しました。サムネイル表示する順番にコードを入れています。
cont=111111,333333,555555,444444,222222,end
こんなテキストを用意し配列に読み込んで、教えて頂いた方法でサムネイル表示させていますので、このテキストを読み込んだ時点でサムネイルを何枚読み込む必要があるのかが判断できるので、全体の枚数と現時点での完了パーセントが把握出来ると思います。
一度試行錯誤を繰り返しながらトライしてみます。
その後で再度ご報告させて頂きます。
どうぞ宜しく御願いします。
すみません。
「フレーム6に「フレームを挿入」でフレームを入れて、フレーム1と同じ内容を6まで繰り返します。」
この文章の意味が把握出来ていません。
新しいレイヤーの1フレームに「Now Loading」と言うテキストを配したムービーを作成・配置しました。ムービー内部のタイムラインは使っていません。
そのレイヤーには6フレームまで「フレームの挿入」を行なっています。本当は、マスクの範囲のサムネイルが表示されると同時くらいに「Now・・・」の表示を終わらせたいのですが、マスクの範囲のサムネイルが表示された以降も、全ての読込みが終了するまで「Now・・・」は表示されたままです。ちょっと不恰好ですが、厳密に切り替えるのは無理なのかなぁと思っています。DPEさんの言われている事がまだ100%理解出来ていません。
No.4
- 回答日時:
すみません、書き方が良くありませんでした。
要するに、Thumb_nail のタイムラインの、フレーム1~6まで Now Loading の表示用ムービークリップが存在していればいい、というだけの話なんですが。
つまり、Now Loading 表示用のレイヤーは、フレーム1にキーフレームの●、フレーム6に□のマークがあって、フレーム1~6までがグレーで塗りつぶされている状態になります。
この表示は、フレーム1と同じ内容をフレーム6まで続ける、という意味になります。
見える部分に既に画像が表示されているのにもかかわらず NowLoading の表示があるのは、確かに変に思われてしまいますよね。
とりあえず画像を非表示にしておき、全部の画像が読み終えたら全ての画像を表示する、という方法で、簡単に解決できます。
duplicateMovieClip でコピーする時の元になる、オリジナルのムービークリップ( sheet 内の target )に、
//最初は非表示にする
onClipEvent(load)
{
this._visible = false;
}
このアクションを設定してください。
load イベントは、ムービークリップがステージに登場した、その時1度だけ発生するイベントです。最初の1度だけ実行すればいい処理に、よく利用されます。
duplicateMovieClip でコピーされたムービークリップにも、同じように onClipEvent(load) が設定されますので、読み込みが完了しても画像は表示されなくなります。
全ての画像の読み込み完了を待って、for ループで onPress を設定する箇所があります。このループの中で、_visible 属性を true にするといいでしょう。
処理のイメージとしては、準備中は画像を表示せず Now Loading の表示だけにして、準備が整ってから画像を表示する、といったところです。
ちなみに、スクロールバーはコンポーネントですが、コンポーネントの正体はパラメータを持つ”ムービークリップ”です。
ムービークリップである以上、ムービークリップで使えるスクリプトは全て利用可能です。
スクロールバー( sc_bar )にも onClipEvent(load) を設定して非表示にし、全ての画像の読み込みが完了した時に sc_bar の _visible プロパティを true にしてみてください。画像の読み込み中はスクロールバーのトラックも非表示になり、読み込み終了時にトラックとスライダが表示されるようになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 読み込んだQRコードをフォームに受け渡したい 1 2023/05/18 11:18
- Perl Perlで特定文字列から特定文字列までを抜き出したい 4 2022/04/02 14:24
- Visual Basic(VBA) ChatGPTに作らせたい Excel VBA 1 2023/04/05 19:56
- その他(メールソフト・メールサービス) サンダーバードメール移動しない 1 2023/05/13 11:21
- その他(Microsoft Office) OneDrive Personalについて 1 2022/08/02 18:25
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- 画像編集・動画編集・音楽編集 エクスプローラー サムネイル表示されない 1 2022/12/22 10:14
- Windows 10 フォルダ内の全ての画像を矢印キーでスライドできるようにしたい 1 2022/10/21 12:53
- Chrome(クローム) 最近のGoogle Chromeのデータ読み込みの遅延やエラーって頻発しますか? 2 2023/01/06 22:12
- 英語 提示した名言について(並列表現の文法規則) 4 2023/06/02 09:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA読み込みアドレスの...
-
メモリに読み込んだ音源のPlayS...
-
cookieの保存について
-
スライドプレゼンテーション機...
-
巻き戻しボタンを作りたいので...
-
Flashゲームのセーブ機能の作り方
-
suzuka rollOverで画像が徐々...
-
5フレーム目で3秒止めて7フレー...
-
シーケンス番号の初期値
-
プリローダーで、画像を下から...
-
Kiss DN AFフレームを非表示に...
-
iframeはSEO的に不利になる?
-
VB6のスクロールバー付きフレー...
-
WEBブラウザの重複起動の禁止
-
メディアプレーヤーで再生する...
-
グリーティングカード
-
処理の速い当たり判定について[...
-
VBSでHTMLソースの取得方法で
-
Excel VBA SetFocus
-
2倍速を等速動画に(車載動画)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#でDLLファイル読み込みを行う...
-
WebBrowserでgoogle検索するには?
-
GetPrivateProfileString変値
-
C言語 バッファについて。
-
ヤフオクの画像拡大機能が
-
ハードディスク DVD 読み...
-
IEを複数立ち上げていると勝...
-
ipadでdブックがとんでもなく遅...
-
外部ファイルからのデータの読...
-
onPressに関する質問
-
C#でブラウザのタイムアウト処理
-
PCでのツイッター閲覧について
-
ado db
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
phpで音を鳴らす
-
フレーム内のオプションボタン...
-
【C#】wavファイルの複数同時再生
-
VB6のスクロールバー付きフレー...
おすすめ情報