我正在尝试使用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专家。