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

好吧,我解决了,我怎么不明白为什么。

我加载的 css/swf 文件与主 SWF 文件不在同一目录中。

现在我正在通过file://./fonts/arial.swf加载我的字体,一切似乎都可以正常工作。

如果有人被卡住了;看起来加载文件的位置很重要。

任何人有任何想法为什么会这样?

于 2011-01-18T19:11:38.600 回答
0

试试这个:让你的加载器成为一个类变量,而不是局部变量。垃圾收集器在文件加载之前将其销毁。

所以在课堂上:

private var loader:Loader;

稍后在您的方法中:

loader = new Loader();
于 2011-01-18T18:20:16.183 回答