カテゴリー Home > ActionScript > ActionScriptで使うlog関数のエラー対策

ActionScriptで使うlog関数のエラー対策

  • ( 2 )
  • ( 0 )
  • ( 1 )
  •  2008/01/31 (Thu)

ActionScript3で使うと便利なライブラリでlog関数があります。

log(s);

で呼び出したときに、Firebugがインストールされてあると、console.log(s)が実行される仕掛けです。

ただし、この関数はFirebugがインストールされてあることが前提のものなので、たとえばIEを利用している場合は表示がおかしくなる場合があります。(真っ白になったり。)なので、console.logを呼び出す際にうまくラップしてあげた方がベターです。たとえばこんな感じ。

package {
  import flash.external.ExternalInterface;
  import flash.utils.getQualifiedClassName;

  public function log(... args):void {
    var inspect:Function = function(arg:*, bracket:Boolean = true):String {
        var className:String = getQualifiedClassName(arg);
        var str:String;

        switch(getQualifiedClassName(arg)) {
            case 'Array':
              var results:Array = [];
              for (var i:uint = 0; i < arg.length; i++) {
                  results.push(inspect(arg[i]));
              }
              if (bracket) {
                str = '[' + results.join(', ') + ']';
              } else {
                str = results.join(', ');
              }
              break;
            case 'int':
            case 'uint':
            case 'Number':
              str = arg.toString();
              break;
            case 'String':
              str = arg;
              break;
            default:
              str = '#<' + className + ':' + String(arg) + '>';
        }
        return str;
    }
    
    var r:String = inspect(args, false);
    trace(r)
    ExternalInterface.call('function(){ if(typeof console == \'object\' && typeof console.log == \'function\') return console.log.apply(this, arguments)}', r);
  }
}

console, console.logの存在判定してるだけですけども、忘れて素のlog関数をコードに入れっぱなしにしておくと思わぬハマり方をする場合もあると思うので、こんな風に予防線張っておくのもいいかと思います。

 | 

Google Adsense

Social bookmark comment : 0

No comment.

Comment : 0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Remember personal info
           

Trackback : 0

TrackBack URL for this entry
http://blog.katsuma.tv/mt-tb.cgi/117
Listed below are links to weblogs that reference
ActionScriptで使うlog関数のエラー対策 from blog.katsuma.tv

Home > ActionScript > ActionScriptで使うlog関数のエラー対策

Search
Feeds
Google Adsense

Page Top