0

Youtube AS3 API を使用して、いくつかの Youtube ビデオを Flash ムービーに表示しようとしていますが、それを自分のサーバーにアップロードすると、ブラウザーに次のメッセージが表示されます。

エラー #2044 : SecurityErrorEvent: text=エラー #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();
    }
}
4

1 に答える 1

0

上部に「importflash.system.Security」があると思います。

私自身の非常によく似たコードは正常に機能しますが、主な違いは次のとおりです。

  • ローダーをINITイベントハンドラーのステージに追加します(ロードされる前ではありません)
  • 何らかの理由でSecurity.allowDomain( "*")とSecurity.allowDomain( "www.youtube.com")があります-理由はわかりません(バグの可能性がありますが、現在テストできません)

うまくいけば、これらの違いが役立つことを願っています。私は実際にはフラッシュ/アクションスクリプトの専門家ではありません。

于 2012-11-20T19:40:47.370 に答える