14.外部からSWFを表示
SWFに直リン
まず初めに、直リンというのはやってはいけません!
というのを前提に話を進めますが、何をやりたいのかというと、ブログパーツみたいなのを作りたいんです。
つまり、全然違うドメイン(例えばブログのページ)から自分のサイトに置いているSWFを表示させたいんです。
例えば、ほら、Twitter でもそういうのを供給してますよね(右の部分です)。
Flash Badgeって称してますが、これ、与えられてるタグを見ると形はに直リンですよね。
実際のタグ(Twitterのサイトへ行くとこれを貼りなさいって表示されます)はこんな感じ。
<span style="color:maroon;font-weight:bold;"><embed src="http://twitter.com/flash/twitter_badge.swf"</span> flashvars="color1=10066176&type=user&id=3x6y9z1" quality="high" width="176" height="176" name="twitter_badge" align="middle" allowScriptAccess="always" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" <span style="color:maroon;font-weight:bold;">/></span>
<br>
<a style="font-size: 10px; color: #999900; text-decoration: none" href="http://twitter.com/yt">follow yt at http://twitter.com</a>
</div>
ここでは色付き部分以外はスルーするとして、肝心の embed の部分だけみると、単にURLが http:// から書いているだけですよね。
え?これでいいの?
SWFが表示されない、、、
単にSWFのURLを直接 http:// から指定すれば外部(SWF置き場とは全く別のドメイン)からでも表示可能なのか、と思って実験したところ、、、
表示されませんでした。そんな単純なものではない?
絶対パスで
もしかしたらセキュリティー上なにか制限あるのかなぁ、なんて思ったのですが、よくよく調べると、、、
表示させたいSWFが単体で完結しているものは表示できました。
表示できなかったのは、指定したSWFが他(といっても同一ドメイン)のSWFやテキストデータやXMLなどを読み込んでいる場合でした。
私はこのような場合、いつもデータファイルへのパスは相対的に書いてます。
どこでだったか忘れましたが、読み込むHTMLが基準になる、という記述を目にしたので、試しに読み込む部分を絶対パスで指定したら意図通り表示されました。
こんな感じで、、、
ただ、ローカルでチェック時にhttp://から指定すると当然動かないよな、、、
まあともかくめでたし、めでたし。(^^)
あ。このページAS3とは特に関係のない話でした、、、<(_ _)>