トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     youtubeカスタムプレイヤー埋め込みで*** セキュリティ Sandbox 違反 ***が出る
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
maki_an
Åê¹ÆNo.45798
投稿日時: 2010-9-14 23:34
半人前
居住地: 東京
投稿: 47
使用環境:
FlashCS5

WIN7

DELL PentiumD 1.5Ghz
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
こんばんは。

カスタムプレイヤーについて、何か通常のプレイヤーとは違うぞ、
と違和感を覚えてはいたのですが、

引用:
確かに、回避の仕様がないですね・・・。

引用:

しかし、なぜかカスタムプレーヤーだとRESIZEイベントすら出ないどころか、scaleModeまで無効になってしまってるような・・・。なんで?

「RESIZEイベントが出る」ことを確かめる方法すら知らない不勉強者ですが、普通のプレーヤーでも、再生ボタンを押せばsandboxエラーは出るんです。でも、scaleModeは無効になりません。

引用:

偶然プレーヤーが呼び出せたりできたのは、両方共Loaderを使って呼び出すところが共通してるから、ってことだと思います。ただ、このカスタムプレーヤは、多分Flashに組み込むことを想定されてないような気がしなくもないんですが・・・。

偶然呼び出しurlにカスタムプレーヤーのurl入れたら出てきたので、なんかいけるんじゃないかと思い頑張ってみました。
が、やはりそうなんでしょうね。組み込まれることを想定してないのだと思います。

柊さん、ほんとうにありがとうございました。
僕の母校のシンボルが柊だったので不思議なご縁を感じております。
また、ひろゆきさん、ありがとうございました。

せっかく色々答えていただいたのだから実現させたかったですが、
普通に外部htmlがblankで開く作りにしたいと思います。

失礼いたします。
Åê¹ÆNo.45788
投稿日時: 2010-9-14 18:35
新米
居住地:
投稿: 4
使用環境:
WinXP, Mac0S10.6, Flash CS3, Flash CS5.5, Flex 3 SDK, Flex 4 SDK
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
どうもです。

■SandBox違反
あー、いやすいません、自分が勘違いしてたかもしれません。

*** セキュリティ Sandbox 違反 ***
SecurityDomain 'http://s.ytimg.com/yt/swf/cpb-vflm8s6tL.swf' が互換性のないコンテキスト 'http://www.youtube.com/crossdomain.xml' にアクセスを試みました。


外部サーバーにあるイメージ「http://s.ytimg.com/yt/swf/cpb-vflm8s6tL.swf」から更にYoutubeのビデオにアクセスしようとしてるからではないかと思いますが、残念ながらここらへんは詳しくないので予想でしか無いです。しかしこの予想だと、多分こちら側からアプローチできる回避策はないんじゃないかと思うんですが・・・。

ちなみに、http://s.ytimg.com/yt/swf/cpb-vflm8s6tL.swfは観てもらうと分かるとおり、プレーヤとリストのスキンです。なので、スキンの中から更にYoutubeにビデオを取得しに行っているのでそうなってしまうのかな、という予想です。

そこらへんは詳しい方がいたら、自分にも是非ご教授願いたいところです。まぁ現状動作自体には問題ないみたいなので、もしかしたら気にしなくていいかもしれませんが・・・。


■横幅を可変にして、いつもプレイヤーが画面の中心に来るようにする
該当のスクリプトを見てみないとよく判らないですねぇ・・・。どういうイベントの際にそのスクリプトを起動してるかとか教えていただければと思います。ただ、どうにもカスタムプレーヤをロードするとRESIZEイベントがでないので、そういうことをやろうとしたらEnterFrameで無理やりやるしかないのかな・・・。


■カスタムプレーヤ
コードを見る限り、おそらく参考になされたのは
http://code.google.com/intl/en/apis/youtube/flash_api_reference.html
の方だと思いますが、これはYoutubeがAS3用のプレーヤーを提供するためのAPIで、プレイリストとかそういう概念は存在しません。なので、

引用:
「右側に関連する8つの動画をサムネイル表示する長方形で大きめのレイアウト」


というのは、上記のAPIではできないというか、関連性がないです。偶然プレーヤーが呼び出せたりできたのは、両方共Loaderを使って呼び出すところが共通してるから、ってことだと思います。ただ、このカスタムプレーヤは、多分Flashに組み込むことを想定されてないような気がしなくもないんですが・・・。

まぁ単に「参考にしようとしているリファレンスと、maki_anさんがやろうとしてることは方向性が違いますよ」ということを言いたかっただけです。で、

引用:
もしかして、このカスタムプレイヤーではどうしてもsandboxエラーが出てしまい、中央配置などの複雑な指示が消えてしまうため、自分の思うような組み込み方は出来ないのではないか・・・などと考え初めています。


というのが、おそらく最初に書いたSandBox違反の部分につながるんですが、おそらくこのカスタムプレーヤだから違反エラー出るというのは間違いないと思います。詳しい理由まではわかりませんが。中央配置に関しては中盤で書いたとおり判らないです。

しかし、なぜかカスタムプレーヤーだとRESIZEイベントすら出ないどころか、scaleModeまで無効になってしまってるような・・・。なんで?
maki_an
Åê¹ÆNo.45781
投稿日時: 2010-9-14 17:12
半人前
居住地: 東京
投稿: 47
使用環境:
FlashCS5

WIN7

DELL PentiumD 1.5Ghz
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
返信に間が空きすみませんでした!
ひろゆきさん、お久しぶりです。柊さんのサンプルを教えていただきありがとうございます。
柊さんはじめまして。ありがとうございます。
wonderflのサンプル、拝見しました。

var context:LoaderContext = new LoaderContext(true);
を入れてみました。



import flash.display.Sprite;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.display.Loader;
import flash.display.DisplayObject;
import flash.events.Event;
import flash.net.URLRequest;
import flash.system.Security;

var player:Object;
var loader:Loader;
var context:LoaderContext = new LoaderContext(true);
//(1)自分のカスタムプレイヤー
//var youtubePath:String = "http://www.youtube.com/cp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=";

//(2)柊さんのサンプルコードのカスタムプレイヤー
var youtubePath:String = "http://www.youtube.com/cp/vjVQa1PpcFPdkoibZPNE8K23dvrQAu8KI4oHUH78i3M=";

//(3)普通プレイヤー
//var youtubePath:String = "http://www.youtube.com/v/ZL5d6vPEhMw?version=3&enablejsapi=1";
Security.allowDomain("www.youtube.com");
Security.allowDomain("s.ytimg.com");
Security.loadPolicyFile("http://www.youtube.com/crossdomain.xml");
loader = new Loader();
addChild(loader);
loader.x = 0;
loader.y = 0;

//loader.scaleX = loader.scaleY = 1.0;
loader.contentLoaderInfo.addEventListener(Event.INIT, initialize, false, 0, true);
loader.contentLoaderInfo.addEventListener("complete", completeHandler);
//loader.contentLoaderInfo.addEventListener("ioError", ioErrorHandler);

loader.load(new URLRequest(youtubePath),context);

function initialize(evt:Event):void
{
	//init
}

function completeHandler(evt:Event):void
{
	player = loader.content;
}
stop();


コード中の(3)普通プレイヤーで再生すると、問題なく再生できました。
が、(1),(2)のいずれもctrl+enterで再生直後にエラーが出ます。
エラーが出てもyoutubeの再生はされるのですが、
ある程度の大きさまでウインドウを縮めると、
「横幅を可変にして、いつもプレイヤーが画面の中心に来るようにする」というスクリプトが無効になり、縮んでしまったり、中央配置が効かなくなったりします。

引用:

あと、Youtubeのカスタムプレーヤーに関しては、maki_anさんが使おうとしてるものは少々種類が違うものです。

「Youtube カスタムプレーヤ」でググると沢山出てくるので、探し当ててみてください。なお、ヒントとしては、「Youtubeアカウントを持ってないとできない」です。(答えみたいなものですが)

これについては、柊さんがサンプルでお使いのカスタムプレイヤーと種類が違うということですよね。
私が使っているのは
http://internet.watch.impress.co.jp/cda/news/2007/07/20/16397.html
にある、「右側に関連する8つの動画をサムネイル表示する長方形で大きめのレイアウト」だと思っています。
これは、サインインが必要だし、是のことだと思います。

おそらく、youtubeアカウントを持っている人が、プレイリストを作ってそこから書き出しされたurlを使わないといけない、ということでしょうか。

もしかして、このカスタムプレイヤーではどうしてもsandboxエラーが出てしまい、中央配置などの複雑な指示が消えてしまうため、自分の思うような組み込み方は出来ないのではないか・・・などと考え初めています。

が、それも思い込みかもしれないので、粘ってみたいと思います。
Åê¹ÆNo.45761
投稿日時: 2010-9-13 22:11
新米
居住地:
投稿: 4
使用環境:
WinXP, Mac0S10.6, Flash CS3, Flash CS5.5, Flex 3 SDK, Flex 4 SDK
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
横から失礼します。

自分の不注意により、こちらの質問とは知らずにサンプルを作ってしまったので、少しだけ解説と言うよりヒントをお渡ししたいと思います。

セキュリティSandBox違反に関しては、下記のサイトを読まれると、解決するかもしれません。自分は解決したんで多分行けると思います。

http://d.hatena.ne.jp/nitoyon/20071112/crossdomain_img

あと、Youtubeのカスタムプレーヤーに関しては、maki_anさんが使おうとしてるものは少々種類が違うものです。

「Youtube カスタムプレーヤ」でググると沢山出てくるので、探し当ててみてください。なお、ヒントとしては、「Youtubeアカウントを持ってないとできない」です。(答えみたいなものですが)
ひろゆき
Åê¹ÆNo.45754
投稿日時: 2010-9-13 16:51
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
柊さんがサンプルを作ってくださったので、ご紹介しておきます。

YouTube API


----------------
質問する際は、回答者に具体的な情報を与えてください。

maki_an
Åê¹ÆNo.45750
投稿日時: 2010-9-13 16:28
半人前
居住地: 東京
投稿: 47
使用環境:
FlashCS5

WIN7

DELL PentiumD 1.5Ghz
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
>その旨明記
すみません。その通りです。

通常のプレイヤーでの動作、拝見しました。
私のソースを流用して提示してくださりありがとうございました。
分かりやすく、私の環境でも、カスタムプレイヤーではなく通常のプレイヤーなら再生出来ることが確認できました。

どうすればカスタムプレイヤーを埋め込むことが出来るのか、
引き続き方法を模索してみたいと思います。


ひろゆき
Åê¹ÆNo.45744
投稿日時: 2010-9-13 15:01
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
カスタムプレイヤーを用いるのであれば、その旨を明記すべきだと思いますが。

とりあえず、カスタムプレイヤーではなく通常のプレイヤー表示をさせてみました。
YouTube API


----------------
質問する際は、回答者に具体的な情報を与えてください。

maki_an
Åê¹ÆNo.45742
投稿日時: 2010-9-13 14:32
半人前
居住地: 東京
投稿: 47
使用環境:
FlashCS5

WIN7

DELL PentiumD 1.5Ghz
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
なるほど。「ドメイン」ですものね。
差し替えてみました。しかし同じようにエラーメッセージが出ます。
*** セキュリティ Sandbox 違反 ***
SecurityDomain 'http://s.ytimg.com/yt/swf/cpb-vflm8s6tL.swf' が互換性のないコンテキスト 'http://www.youtube.com/crossdomain.xml' にアクセスを試みました。


しかし、少なくともここは間違っていたので、教えていただき本当によかったです。ひろゆきさま、ありがとうございます。

引き続き考えてみたいと思います。
ひろゆき
Åê¹ÆNo.45741
投稿日時: 2010-9-13 14:15
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
よく読みましょう。

×
Security.allowDomain("http://www.youtube.com/");


Security.allowDomain("www.youtube.com");


----------------
質問する際は、回答者に具体的な情報を与えてください。

maki_an
Åê¹ÆNo.45740
投稿日時: 2010-9-13 14:10
半人前
居住地: 東京
投稿: 47
使用環境:
FlashCS5

WIN7

DELL PentiumD 1.5Ghz
Re: youtube埋め込みで*** セキュリティ Sandbox 違反 ***が出る
早速のご返信ありがとうございます。
しかも、問題の箇所を1行に絞って教えていただけるなんて。
何日も一人で悩んでいるので、とても救われた気持ちです。
本当にありがとうございます。

何か思い込みがあるんですね。
何だろう。試しにその1行をはずしてみました。
しかし、同じエラーが出ました。

また、この1行自体が何か文法を無視したものかと思い
別の新規flaをつくり、その1行のみを記載してパブリッシュ
しましたが、特にエラーは出ませんでした。

もしや、エラーに出ている
http://s.ytimg.com/

もallowDomainに加えた方が良いのかと思い加えましたが、
Security.allowDomain("http://www.youtube.com/","http://s.ytimg.com/");
同じエラーが出ました。

もしかしたらallowDomainの意味をそもそも思い違えているのでは
と思い、
調べました。

◆指定したドメインのswf、htmlファイルから、このswf内のオブジェクト/変数へのアクセスを許可、とあります。
http://www.youtube.com/
から自分のswfオブジェクトへのアクセスを
許可、だから間違っていない気がしますが、
どこかが必ず間違っているのですね。

引き続きこの1行に絞って調べてみたいと思います。
(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops