外部swfからフォントをロードする際の注意点

これまたハマったのでメモ。

ライブラリで「新規フォント…」を選択、リンケージ設定して単独のswfとして書きだし、本体のswfと分離して、外部swfからフォントを埋め込むテクニックがありますが、この時、本体側のテキストフィールドに同じフォントが指定されていると、フォントの適用ができません。
例えば、フォントを適用しようとするtextFieldに同じフォントが指定されていると、文字が表示されません(textFieldはフォント埋め込みせず、テキストは空の状態)。
またムービークリップがmc1,mc2とタイムライン上に時系列に並んでいる(例:1-5フレームにmc1、6-10フレームにmc2)場合で・・・
  • mc1には、外部swfからASでフォント適用するtextFieldがある。
  • mc2には、外部swfのフォントが指定されたtextFieldがある。
のようになっていると、最初にmc1を表示したときには文字が表示されているが、mc2を表示した後に再度mc1を表示すると、文字が見えないという現象が起きます(mc2のtextFieldはテキストの有無は問わず)。
正確な理由はわかりませんが、本体swfと外部swfで同じ名前のフォントを使おうとしてコンフリクトしているとか、既に本体側にフォントがあると見なされてスルーされるか..でしょうか。
わざわざ外部swfにするフォントを本体側に指定すること自体が無意味なわけですが、レイアウト確認用に文字を入れておいて、後から外部フォント化するなど、指定が残ってしまう場合もあるので、要注意だと思います(実際、ハマりましたし)。
外部swfからフォントをロードする方法については、下記サイトを参考にしました。感謝。

IE7でwindow.openする際の注意点

ExternalInterface.call()で”window.open”を使って、別ウィンドウを開こうとしてマハったのでメモ。

IE7で”window.open”を使う場合は、swfのEMBEDで「wmode=”transparent”」にしないといけないらしい。最近の仕事は分業が多くて、自分でHTML書く機会も少ないので、全然知らなかったです。というか、やったけど忘れているのか?
下記のサイトを参考にしました。感謝。