Flash动态载入字体的问题

2011-06-15 19:03:38

Flash载入跨域字体时,老是发生注册不了字体,原来是Loader没有设置 LoaderContext的问题 var onFontLoaded = function(e:Event):void{ var loaderInfo:LoaderInfo = e.currentTarget as LoaderInfo; //font001为font.swf的类名 var cls:Class = loaderInfo.applicationDomain.getDefinition("font001"); //如果跨域,这块会报错, cls已经反射出来了.. //ArgumentError: Error #1508: 为参数 font 指定的值无效。 [b]Font.registerFont(cls);[/b] } //...so many listener //loader.load(new URLRequest("server/font.swf")); 正解: var _path = "server/font.swf"; var _localmode = new RegExp("file://").test(loaderInfo.url); if (_localmode){ _loader.load(new URLRequest(_path)); } else { var context:LoaderContext = new LoaderContext(); context.checkPolicyFile = true; context.securityDomain = SecurityDomain.currentDomain; _loader.load(new URLRequest(_path),context); } 为什么Player在registerFont进不报 SecurityError呢,让我纠结了很久...