1

外部 javascript インターフェイスを備えたフラッシュ プレーヤーがあります: reloadData() ページの情報を編集するときに、Javascript を介してその関数を呼び出しています。基本的には、ページとプレーヤーのデータを同期させます。

プレーヤーがローカルでホストされている場合、 reloadData() 関数は正常に機能します。これを CDN (Amazon Cloudfront) に移動すると、プレーヤーは正常に読み込まれますが、外部の JavaScript インターフェイスは機能しなくなります - console.log(player) は次のことを明らかにします:

<object type=​"application/​x-shockwave-flash" data=​"[our_cloudfront_url].swf" width=​"920" height=​"404" id=​"player" style=​"visibility:​ visible;​ ">​

Uncaught TypeError: Object #<an HTMLObjectElement> has no method 'reloadData'

CDN でアイテムを操作するときに動作が異なるものがたくさんあることは知っていますが、同様の問題を経験して修正を見つけた人がいるかどうか疑問に思っています。

ああ、ええ... CNAME を使用して CloudFront ディストリビューションを指しています (buildid.ourdomain.net => distributionid.cloudfront.net)

4

1 に答える 1

1

さて、これを理解しました。2つのことが必要です:

  1. swfを埋め込むときのページ:allowScriptAccess = "always"

  2. swf自体の場合:System.security.allowDomain( "ourdomain.com")

これは明らかなことだと思いますが、私のような他の貧しい失われた魂が同じ問題を抱えている場合に備えて、ここに投稿すると思いました。

于 2010-10-12T00:19:23.270 に答える