0

こんにちは私はここ数日ここで少し立ち往生しています。Security.LOCAL_TRUSTEDサンドボックスでSWFを実行しています。

JPEGと単純なSWFを問題なくロードできます

var loader:Loader = new Loader();
loader.load(new URLRequest('file:///test.jpg'));

しかし、一度、Flash Builder 4(CSSをSWFにコンパイル)を使用してCSS(myfont.swfなど)ファイルから作成されたSWFを正常にロードすると、以前のように画像またはSWFを再度ロードできなくなります。

プロセスイベントが発生し、ロードされているように見えますが、完全なイベントが発生することはありません。他のIOErrorまたはセキュリティ警告も発生しません。

ロードされたSWF(myfont.swf)は、ロードされたswfのサンドボックスを変更できますか?または私はここで何が欠けていますか。

myfont.swfのCSS

/* CSS file */
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";


@font-face {
    src: url("../assets/fonts/Arial.ttf");
    fontFamily: "Arial";
    embedAsCFF: true;
    unicodeRange:
        U+0000-U+007F,
        U+00A0-U+00FF,
        U+2000-U+206F,
        U+20A0-U+20CF;
}

@font-face {
    src: url("../assets/fonts/Arial Bold.ttf");
    fontFamily: "Arial";
    fontWeight: "bold";
    embedAsCFF: true;
    unicodeRange:
        U+0000-U+007F,
        U+00A0-U+00FF,
        U+2000-U+206F,
        U+20A0-U+20CF;
}
4

2 に答える 2

0

これを試してください:ローダーをローカル変数ではなくクラス変数にします。ガベージコレクタは、ファイルがロードされる前にそれを破棄します。

したがって、クラス本体では:

private var loader:Loader;

そして後であなたの方法で:

loader = new Loader();
于 2011-01-18T18:20:16.183 に答える
0

さて、私はそれを解決しました、しかし私は理由を完全に理解していません。

メインのSWFファイルと同じディレクトリにない場所にロードしていたcss/swfファイル。

file://./fonts/arial.swfを介してフォントをロードしているので、すべてが機能しているようです。

他の誰かが立ち往生した場合。ロードされたファイルの場所が重要なようです。

誰かそれがなぜであるかについての考えはありますか?

于 2011-01-18T19:11:38.600 に答える