Flashで余所のページに飛んで戻ったときに最初っから表示しないようにする

例えば商品紹介Flashで、
1.Flash内でカテゴリーを選択
2.カテゴリーごとの商品が一覧表示される
3.商品を選ぶと商品購入ページに飛ぶ
4.ブラウザの戻るボタンでもどる
5.Flashが最初から再生される
6.再度カテゴリーを選択
...
これがまあ普通だった訳だが。
deep linking なる手法で解決する方法が発明されていたようで。

初めて見たのは、…って、紹介しようとしたら、かわっとるがや。
やめちゃったのか…なにか問題ありなの?やめてよ。。

やめないで~。やめないで~。やめて~。…やめるのをやめて~。っていうやりとりを思い出した。。
(O橋K泉議員辞職会見より)

基、上記フローの、「4」で「2」に戻りたい、という話。
こういうのLink を使うのが通例みたいだけど、
今回はもっと軽く実現したい。
というわけで、コレ。
Flashから任意のJavaScriptを走らせる+結果を受け取る!Link

受け取り
var locationHash:String = String(ExternalInterface.call("function(){return location.hash}"));
var categoryId:int = int(locationHash.substr(1));
言うまでもないが、文字列として使うならint()は不要。

カテゴリー切り替え時
ExternalInterface.call("function(h){location.hash=h}",categoryId);
こうしておくと、URLの最後に"#123"とかついて、他のページから戻ってきたとき受け取れる。


ここで、IEユーザーに朗報。
"swfobject.js"を使ってswfを配置すると、
var locationHash:String = String(ExternalInterface.call("function(){return location.hash}"));
trace(locationHash);

null
になって誤作動してくれるぞorz...

ありがとうIE、Microsoftバンザ~イ┐(’Д`)┌

"AC_RunActiveContent.js"だとダイジョぶみたいだけど。

— posted by たか at 07:29 pm   pingTrackBack [0]

この記事に対するコメントはありません

T: Y: ALL: Online:
ThemeSwitch
Created in 6.6144 sec.
prev
2017.5
next
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
 
blogBar
Firefox3 Meter