我正在研究基于OSMF的播放器。我在播放器的右上角添加了徽标图片。现在我想点击徽标图片打开链接。
我在onMain点击事件中编写了一个Action脚本代码
CODE:
private function onMainClick(event:MouseEvent):void{
if(event.target.hasOwnProperty("content"))
{
var info:LoaderInfo = event.target.content.loaderInfo;
var imageUrl:String = configuration.LogoImage;//Logo url to display on player
imageUrl = imageUrl.split("/").splice(1).join("/");
if(info.url.search(imageUrl) >= 0)
{
var url:String = configuration.LogoLink;//Logo link to open in new tab
var request:URLRequest = new URLRequest(url);
try
{
navigateToURL(request, '_blank');
}
catch(error:Error)
{
trace("Error occurred!");
}
}
}
}
当我从同一个域提供徽标网址时,它工作正常(给定的网址将在新标签中打开)。从外部域访问图像时出现问题。一个不支持来自我的域名请求的域名。
更多信息:我的播放器右上角正确显示徽标图片。在徽标网址的clcik我得到低于错误。我从配置文件中提供了徽标网址
SecurityError:错误#2123:安全沙箱冲突:Loader.content:http:///release/XYZPlayer.swf无法访问http://www.esnipe.com/shared/help_icon.gif。没有授予访问权限的策略文件。
at flash.display::Loader/get content()
at StrobeMediaPlayback/onMainClick()
任何人都可以帮我解决这个错误。
答案 0 :(得分:0)
没有http://www.esnipe.com/crossdomain.xml文件授予对已加载内容的访问权限。
有访问加载的图像bitmapData(Loading Profile Images on VK.com in ActionScript)的解决方法,但查看代码,您只需要记住加载的图像的网址。尝试将其存储在某个地方,例如在本地变量中,或者通过自定义加载器类扩展flash Loader
,并将最后加载的URLRequest
对象存储在其中。
示例:
public class LoaderExt extends Loader
{
private var _request:URLRequest;
public function get url():String{return _request ? _request.url : null}
public function LoaderExt()
{
super();
}
override public function load(request:URLRequest, context:LoaderContext=null):void
{
_request = request;
super.load(request, context);
}
}