Home > Flex2

Flex2 Archive

[Flex]ブラウザのポップアップブロックを回避する

navigateToURLを使って新しいウインドウを開く場合には、
ブラウザのポップアップブロックに引っかかるときがある。

navigateToURLでは無く、JavaScriptを使ってウインドウを開いてやれば良いらしい。

< ?xml version="1.0" encoding="utf-8"?>
< mx :Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
  
    < ![CDATA[
      import flash.net.navigateToURL;

      private function openNewWindow( event:MouseEvent, url:String, winName:String, w:int, h:int, toolbar:int, location:int, directories:int, status:int, menubar:int, scrollbars:int, resizable:int):void{
        var fullURL:String = "javascript:var myWin;" + "if(!myWin || myWin.closed)" + "{myWin = window.open('" + url + "','" + winName + "','" + "width=" + w + ",height=" + h  + ",toolbar=" + toolbar + ",location=" + location + ",directories=" + directories + ",status=" + status + ",menubar=" + menubar + ",scrollbars=" + scrollbars + ",resizable=" + resizable + ",top='+((screen.height/2)-(" + h/2 + "))+'" + ",left='+((screen.width/2)-(" + w/2 + "))+'" + "')}" + "else{myWin.focus();};void(0);";
        var u:URLRequest = new URLRequest(fullURL);
        navigateToURL(u,"_self");
      }
    ]]>
  
  
  
< /mx>

メニューバーやツールバーの有無は0,1のフラグで渡す。
FireFoxとOperaとIEでは確かめてみたけど、確かにウインドウが開いた。
設定によると思うけど、FireFoxでは新しいタブとして開いた。

こういう場合を考えると、やっぱりwidthとheightは設定するべきじゃないなぁ。
ブラウザ全体のサイズが調整されてしまう。

[情報元]Adobe Flex cookbook beta

ActionScriptの処理速度を高速化したい

とりあえず、備忘録的にメモ。

[tips]ActionScript3 最適化・高速化Tips 簡易まとめ
演算をビット演算化するとか、プログラムの可読性を下げそうなもの多め。
でも、クリティカルな場面ではすごい役に立ちそう。

AS3 での変数宣言とパフォーマンス

date = new Date()
for (i=0; i<100000; i++){
  date.getTime()
}

これだと340ms

date = new Date()
var dateTyped:Date = date
for (var i:int=0; i<100000; i++){  // i を int 型に
  dateTyped.getTime()
}

これだと13ms

うぉー。差がありすぎ。
でもstrictでコンパイルして、
ワーニングもきっちり消すように心がけてれば大丈夫かな?

Home > Flex2

Search
Google
Feeds
Meta
Advertisement

Return to page top