- 締切済み
Flash8の埋め込みフォントバグ?
windows xp flash professional 8 外部テキストを読込み、それを埋め込みフォントとして再生するムービーを作ったのですが、この機能を使うと従来のプリローダーでは正常に機能しないみたいです。 _root.getBytesLoaded() _root.getBytesTotal() を使って値を求めるというものです。ダウロードシュミレートで確認すると、なぜか‥85%過ぎるまで、何も表示されない状態です。 埋め込みフォントの使ってるシンボルをはずせば正常にプリローダーは動作します。 これって・・なにか違うスクリプトが必要なんでしょうか。 それとも仕様?(TT ご解答お待ちしております。
- みんなの回答 (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明朝 の日本語を全てのフォントデータがロードされるまで,そのフレームは非表示になります。
お礼
sassakun様 ご解答有難うございます。 なるほどですね・・無知ですみません(TT バグを起こさない為の仕様ですか‥ 意味はわかるのですが、そこをなんとか細工なしにプリローダー稼動するようになれば楽ですね^^; 丁寧に回答していただけるので本当に助かります。 有難うございました。