Youtube AS3 API Crossdomain



我正在尝试使用Youtube AS3 API将一些Youtube视频显示到我的flash电影中,但是当我将其上传到自己的服务器时,浏览器向我显示以下消息:

错误 #

2044:安全错误事件:文本=错误 #2121:沙盒安全性 违规:http://*/magicbook.swf?user=25&id=2283: http://www.youtube.com/apiplayer?version=3 无法访问。

我已经添加了我的Security.allowDomain策略,以允许在两个服务器之间进行访问。我做错了什么?

这是我的代码:

class YoutubePlayer extends Sprite {
    private var player:Object;
    private var loader:Loader;
    private var _videoID:String;
    public function YoutubePlayer(videoID:String) {
        Security.allowInsecureDomain("*");
        Security.allowDomain("*");          
        //loader = addChild(new Loader()) as Loader;
        loader = new Loader();
        loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit, false, 0, true);
        loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));
        _videoID = videoID;
    }
    private function onLoaderInit(event:Event):void {
        player = loader.content;
        player.addEventListener("onReady", onPlayerReady);
    }
    private function onPlayerReady(event:Event):void {
        player.setSize(320, 180);
        player.cueVideoByUrl("http://www.youtube.com/v/"+_videoID,0);
        player.addEventListener("onError",seeError);
        this.addChild(loader);
    }
    private function seeError(event:Event):void{
        trace("error");
    }
    public function playYoutube():void{
        player.playVideo();
    }
    public function stopYoutube():void{
        player.stopVideo();
    }
}

我假设顶部有一个"import flash.system.Security"。

我自己非常相似的代码工作正常,唯一的主要区别是:

  • 我将加载器添加到 INIT 事件处理程序中的阶段(不是在加载之前)
  • 出于某种原因,我有Security.allowDomain("*")和Security.allowDomain("www.youtube.com") - 我不确定为什么(它可能是一个错误,但现在无法测试)

希望这些差异有所帮助。我不是真正的flash/actionscript专家。

相关内容

  • 没有找到相关文章

最新更新