もの凄く珍しくFlashの技術ネタ。明日槍が降るかもよ?
・・・とにかく、今更ながらボチボチとAS3始めてみました。と言っても実案件での対応はまだなんだけど。
AS3ではリンク設定ではgetURL()ではなくnavigateToURL()を使うことになってるけど、これで_blank指定にした際にFirefoxではポップアップブロックが掛かってしまうというのは有名な話。
で、それに対応するためには「wmode=”transparent”指定にして、通常はnavigateToURLで、IEとFirefoxのみExternalInterface経由のwindow.openを使う」ということをしなければならないのだが・・・正直面倒臭いよね。なんでリンク如きでそんな手間を掛けなくちゃならんのだと。
で、少し検索してみたら、それを簡単に対応できてしまうクラスを公開しているページを発見。
Popups Blocked in AS3 with navigateToURL() | Zorked!
http://www.zorked.com/flash/flash-and-navigatetourl-popup-blocking/
使い方は至って簡単。ダウンロードしたcomフォルダをflaファイルの直下に置いて、以下のように書くだけ。
import com.zorked.URLNavigator;
mc.addEventListener(MouseEvent.MOUSE_UP, clickBtn);
function clickBtn(e:MouseEvent):void{
var url:URLRequest = new URLRequest(‘hoge.html’);URLNavigator.ChangePage(url,‘_blank’);
}
その際、navigateToURL()ではなくURLNavigator.ChangePage()でリンクを飛ばしましょう。
取り敢えず自分が試した限りではこれで上手く動作するハズだけど、何か不具合があったら教えてくれると助かります。
というか皆さんこれはどういう風に対処してるんでしょ?
ところでProgressionってここら辺はやっぱり簡単にできるようになってるのかな?