• 締切済み

Flash8の埋め込みフォントバグ?

windows xp flash professional 8 外部テキストを読込み、それを埋め込みフォントとして再生するムービーを作ったのですが、この機能を使うと従来のプリローダーでは正常に機能しないみたいです。 _root.getBytesLoaded() _root.getBytesTotal() を使って値を求めるというものです。ダウロードシュミレートで確認すると、なぜか‥85%過ぎるまで、何も表示されない状態です。 埋め込みフォントの使ってるシンボルをはずせば正常にプリローダーは動作します。 これって・・なにか違うスクリプトが必要なんでしょうか。 それとも仕様?(TT ご解答お待ちしております。

  • Flash
  • 回答数1
  • ありがとう数1

みんなの回答

noname#35109
noname#35109
回答No.1

バグではなくて, バグを起こさせないための仕様です。 これと同じ理由です↓。 Sound.attachSound()メソッド http://www.fumiononaka.com/TechNotes/Flash/FN0402003.html > [*1] デフォルトでは、 > 同時に[最初のフレームに書き出し]がチェックされます。 > この場合サウンドは、 > ムービーの第1フレームが描画される前に、ロードされます。 > したがって、サウンドのデータサイズが大きいと、 > 何も表示されない状態が続くことになります > (この間は、ロード待ちのアニメーションを作成しても、表示されません)。 文字アウトラインデータがロードされていないうちに, その文字のあるフレームが表示されると,とんでもないことになりますね。 文字が何も表示されないか,もしくは歯抜け状態で表示されるはずです。 そういうとんでもない現象が起こることを世間ではバグと言います。 それを回避するために, ロードされていないフレームは表示されないしくみになっています。 ちなみに, 上のサウンドと同じく, 埋め込みフォントを使用したテキストフィールドを2フレーム以降に使用するようにして, フレーム1 では埋め込みフォントを使用しないテキストフィールドを用いて, ダウンロードシミュレートしてみたら, プリローダはちゃんと正常に動作しましたよ。 プリローダ にテキストを使う場合は, デバイスフォントなど,埋め込みフォントでないテキストフィールドを使用してください。 もしくは, 埋めこむフォントを「数字[1,,9] (11文字)」 などに限定するかです。 ただし,その場合, 埋めこむフォントの種類は,他のテキストフィールドのフォントとは違う種類のフォントにしてください。 例えば フレーム2 以降に MS明朝 で日本語を全て埋めこむようなテキストフィールドを用意していて, フレーム1のプリローダにも 同じ MS明朝 使っていて, 埋めこむフォントを「数字[1,,9] (11文字)」 などに限定してあっても, 結局,MS明朝 の日本語を全てのフォントデータがロードされるまで,そのフレームは非表示になります。

nanakkko
質問者

お礼

sassakun様 ご解答有難うございます。 なるほどですね・・無知ですみません(TT バグを起こさない為の仕様ですか‥ 意味はわかるのですが、そこをなんとか細工なしにプリローダー稼動するようになれば楽ですね^^; 丁寧に回答していただけるので本当に助かります。 有難うございました。

関連するQ&A

  • 半分読み込んで再生するプリローダー

    Flashでプリローダーを作成しています。 これまでは100%読み込むとムービーを再生するという、 よくあるタイプのものを使用していましたが、 今回は全体の半分、または指定のバイト数を読み込んだら再生するものにしたいと思っています。 そこで自分でスクリプトを書き換え、試行錯誤してみましたがどうしてもうまくいきません。 【もとのスクリプト(正常に動作します)】 ================================================================== this.onEnterFrame = function() { _root.stop(); nParcent = (_root.getBytesLoaded() / _root.getBytesTotal() )*100; this.nParcent_txt.text = Math.round(nParcent)+"%"; if ( nParcent == 100) { _root.play(); } } ================================================================== 【書き換え後のスクリプト】 ================================================================== this.onEnterFrame = function() { _root.stop(); halfSize = _root.getBytesTotal() / 2; nParcent = (_root.getBytesLoaded() / halfSize )*100; this.nParcent_txt.text = Math.round(nParcent)+"%"; if ( nParcent == 100) { _root.play(); } ================================================================== 書き換えた後の方を実行すると、 200%まで読み込んでムービーがストップしてしまいます。 ActionScript初心者でどこが間違っているのか見当がつかず困っています。 ご回答よろしくお願いします。

    • ベストアンサー
    • Flash
  • 1フレーム~5フレームまで表示されなくなったのは。。。

    こんにちわ毎回お世話になっております 新しいフラッシュを作ったのですが 前回のフラッシュにしようしたロード画面を 使いまわしました。 ムービークリップ自体には onClipEvent (load) { _root.stop(); } onClipEvent (enterFrame) { if (100 == Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) { _root.gotoAndPlay(5); } } onClipEvent (enterFrame) { this.gotoAndStop(Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)); } と前回同様記述しました。 しかし今回はロード画面がでず 白紙の画面のまま読み込みが完了し そのままフレーム5に進んでしまっています。 何回もやりなおしたのですが どうしても白紙のまま読み込んでしまいます。 これはFLA自体が破損?したのでしょうか? 非常に困っています。 なにかアドバイスがありましたらお願いいたします。 別のロードムービーを作ったものの 白紙のまま読み込みされました。。。 FLASH8 WIN XP使用です。

    • ベストアンサー
    • Flash
  • Now Loadingから次のフレームに行かない

    Flash8です。 1フレームに全体のサイズを読み込むスクリプト ------------------------- this.onEnterFrame = function() { nParcent = (_root.getBytesLoaded()/_root.getBytesTotal())*100; if (nParcent == 100) { _root.play(); delete this.onEnterFrame; } }; _root.stop(); ------------------------- と、%を数字で表記するためのスクリプト ------------------------- onClipEvent (enterFrame) { num = Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100); _root.nowloading.percent = num+"%"; } ------------------------- を入れていて、100%読み込んだら次のフレームより開始(再生)したいのですけど、 現状読み込んで(数字も0から100に上がって行って)、100%になった状態でストップして再生しません。 何が足りないのでしょうか? アドバイスお願いします!

  • now loding.......

    onClipEvent (load) { total = _root.getBytesTotal(); } onClipEvent (enterFrame) { loaded = _root.getBytesLoaded(); percent = int(loaded/total*100); text = " "+percent+"%"; gotoAndStop(percent); if (loaded == total) { _root.gotoAndPlay(2); } } と、いうスクリプトが記述されているのですが、すべてダウンロードしないうちに再生してしまい、ナローバンドで見たときに、途中の動きがギクシャクしてしまいます。 このスクリプトをどういじれば解決するのでしょうか? ご教授くだされば幸いです。

  • flash8 professionalを使っています

    flash8 professionalを使っています flash8 professionalを使っています、わかならい事があり、質問しました。 http://www.ahcahcum-muchacha.com/ このようにロールオーバーしたらアニメーションが起こるサイトを作りたいのですが、「この場所をロールオーバーすると、ここにアニメーションが起こる」という命令のスクリプトが分からないのですが、何かアドバイスか、参考になるHPがあれば教えてください。 あと、こういったのもだったらそういう構造で作るのが効率よいのでしょうか? ネスト化とかはするものの、最終1つのムービークリップで全部のアニメーションのパターンをタイムライン上に作ってこの時はこのパターンのアニメーションを起こす、という事をスクリプトで指示して、それをシーンの中に入れてパブリッシュするのですか? flash初心者です。 aftereffectsなら割と触れるのですが、flashは、タイムラインの構造も結構違うので、どういった構造で、進めていったらよいのか知りたいです。

  • 外部JPG読み込みでのLoading

    こんにちは。 FLASH MXでものすごく単純なことをしようとしているのですが、 出来ずに困っております。 外部JPGを読み込むときにloading画面を表示したいのですが、 それが出来ずに困っております。 レイヤーが下記の様に3つあります。 script loading(loadingの文字)1フレーム目に文字、2フレーム目は空 base(読み込み用のMC) scriptの1フレーム目に下記のスクリプトを書いております。 --------------------------------------------------------- base.loadMovie("thumb/"+_name+".jpg"); if(this.getBytesTotal() < this.getBytesLoaded()){ this.gotoAndstop(2); }else{ this.stop(); } ---------------------------------------------------------- これでプレビューすると写真読み込みは完了しているのですが、 loadingの文字が写真の上にかぶさったままになります。 どのようにすればよろしいでしょうか?お教えいただければ 幸いです。

    • ベストアンサー
    • Flash
  • Flash:外部JPEG読み込み待ちについて

    こんにちは。どうぞよろしくお願い致します。 Flash MX2004使用です。 外部JPEGを4枚読み込ませ、 4枚全部読み込み終わるまで再生をストップさせる またはローディング画面を表示する という事をやりたいのですが、なかなかうまくいきません。 現在の状況は、1フレーム目に this.ph01.loadMovie("01.jpg"); this.ph02.loadMovie("02.jpg"); this.ph03.loadMovie("03.jpg"); this.ph04.loadMovie("04.jpg"); 「ph01」に onClipEvent (load) { this._parent.stop(); } onClipEvent (data) { if (this.getBytesTotal()>0 && this.getBytesTotal()<=this.getBytesLoaded()) { if (this._parent.ph02.getBytesTotal()>0 && this._parent.ph02.getBytesTotal()<=this._parent.ph02.getBytesLoaded()) { if (this._parent.ph03.getBytesTotal()>0 && this._parent.ph03.getBytesTotal()<=this._parent.ph03.getBytesLoaded()) { if (this._parent.ph04.getBytesTotal()>0 && this._parent.ph04.getBytesTotal()<=this._parent.ph04.getBytesLoaded()) { this._parent.play(); } } } } else { this._parent.stop(); } } と書いています。 何分ActionScriptはまだまだサンプルの真似事とちょっと手を加える程度の知識しかないもので、上に書いた物もものすごい間違い方をしているかもしれません(恥) 読み込むJPEGファイルは大したサイズではないので、一般的な回線速度なら普通に再生しても読み込みが再生に追いつかないという事もないのですが、先方の指示で絶対に!!全ての画像を読み込み終わるまで再生しないように!!と言われています。 どなたか、どうかお力を貸して頂けないでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • Loadign途中に再生させる方法

    Flashでアニメーションを作成しているのですが、LoadingのActionScriptについて アドバイスいただけないでしょうか。 まず、現在下記のActionScriptで100%読み込んでから再生する方法を取っています。 -----ActionScript------------------------------- Total = _root.getBytesTotal(); Loaded = _root.getBytesLoaded(); if (loaded>=Total) { _root.play(); } else { parcent = (Loaded/Total)*100; parcent_text = Math.round(parcent); Bar.p_Bar(parcent_text); _root.stop(); } ------------------------------------------------- ところがあまりにもloadingに時間がかかる為、途中まで読み込んだら 再生するようにしたいのですが、その場合どのようにすれば良いのでしょうか。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Flash
  • FLASH5の使い方で、フォントを装飾したい。

    フォント(文字)をFLASHのナカで書いて、 それを装飾しようと思ったら、できませんでした・・。 シンボル(グラフィック)にしてみたりシンボル(ムービー) にしてみたりしたんですが・・・? 教えてください お願いします。 そもそもムービーとグラフィックの違いって??

  • 外部データから_x座標に(Flash Lite1.1)

    Flash Lite1.1において、外部データからムービークリップの_x座標を設定したいのですがどのようにすればできるのでしょうか?? 【abc.txt】 x=100&y=200 というテキスト外部データがあり。 ムービークリップの座標に設定したいのです。 以下ソースだけではできないのでしょうか?ご教授よろしくお願いします。 loadVariables("abc.txt",_root); _x = x; _y = y;

    • ベストアンサー
    • Flash

専門家に質問してみよう