0

我正在开发基于 OSMF 的播放器。我在播放器的右上角添加了徽标图像。现在我想在单击徽标图像时打开一个链接。

我在 onMain 点击事件中编写了一个动作脚本代码

代码:

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!");

                        }

                    }

                }

}

当我提供来自同一域的徽标 url 时,它工作正常(给定的 url 将在新选项卡中打开)。当我从外部域访问图像时出现问题。一个不支持来自我的域的请求的域。

更多信息:徽标图像正确显示在我的播放器的右上角。在徽标 url 的 clcik 上,我遇到了错误。我正在从我的配置文件中提供徽标 url

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()

请任何人都可以帮助我摆脱这个错误。

4

1 回答 1

0

没有授予对加载内容的访问权限的http://www.esnipe.com/crossdomain.xml文件。

有一种解决方法可以访问加载的图像 bitmapData(在 ActionScript 中加载 VK.com 上的配置文件图像),但是查看您的代码,您只需要记住加载图像的 url。尝试将它存储在某个地方,例如在局部变量中或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);
    }
}
于 2013-06-04T14:56:20.000 回答