forked from: 無理やりtrace (IE・Firefox・Opera)

by 3f5 forked from 無理やりtrace (IE・Firefox・Opera) (diff: 35)
注.このスクリプトは編集画面でのみ動作します。
コピペすべきHTMLは => http://blog.livedoor.jp/k_yon/archives/51830223.html
要はswfのロード時にallowScriptAccessをalwaysにできればOKってこと。
それができれば、Flash側からExternalInterfaceを使って何でもできる

いつもコンパイラのメッセージが出るところに、traceした文字が出ます。
WindowsのIEとFirefoxとOperaで確認済み。
IEとOperaはF5リロードで仕込んだHTMLが発動するけど、
Firefoxのみ一度別のページに行く必要があるみたいです。

このtrace文はコピペ=>save=>リロードした"一度"しか有効になりません
連続で編集する場合は問題ないですが、再度ページをリロードしてしまうと消えます。
その場合は、もう一度コピペ=>save=>リロードの操作を繰り返してください。

ま、forkしてみりゃだいたいワカル。
♥0 | Line 49 | Modified 2011-12-08 19:32:33 | MIT License
play

ActionScript3 source code

/**
 * Copyright 3f5 ( http://wonderfl.net/user/3f5 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/bxDK
 */

// forked from yoneken's 無理やりtrace (IE・Firefox・Opera)
// 注.このスクリプトは編集画面でのみ動作します。

// コピペすべきHTMLは => http://blog.livedoor.jp/k_yon/archives/51830223.html
// 要はswfのロード時にallowScriptAccessをalwaysにできればOKってこと。
// それができれば、Flash側からExternalInterfaceを使って何でもできる
//
// いつもコンパイラのメッセージが出るところに、traceした文字が出ます。
// WindowsのIEとFirefoxとOperaで確認済み。
// IEとOperaはF5リロードで仕込んだHTMLが発動するけど、
// Firefoxのみ一度別のページに行く必要があるみたいです。
//
// このtrace文はコピペ=>save=>リロードした"一度"しか有効になりません
// 連続で編集する場合は問題ないですが、再度ページをリロードしてしまうと消えます。
// その場合は、もう一度コピペ=>save=>リロードの操作を繰り返してください。
//
// ま、forkしてみりゃだいたいワカル。

package{
    import flash.system.Security;
  import flash.display.Sprite;
  import flash.utils.Timer;   
  import flash.events.TimerEvent;
  import flash.text.TextField;  
  import flash.text.TextFieldType;  

  public class etest extends Sprite
  {
    public var tf:TextField;
    private var t:Timer;
    private var num:int;
    public function etest():void
    {
        Security.allowDomain('*');
      num = 0;
      tf = new TextField();  
      tf.type = TextFieldType.INPUT;
      tf.width = 460;
      tf.border = true;  
      tf.borderColor = 0x000;
      addChild(tf);
      t = new Timer(1000, 20);
      t.addEventListener(TimerEvent.TIMER, onTic);
      t.start();
    }

    private function onTic(e:TimerEvent):void
    {
      try{
        trace2("traceできるかな? ", num++, "\n");
      }catch(e:Error){
        tf.appendText(e.toString());
      }
    }
  }
}

//-------------

import flash.external.ExternalInterface;

function trace2(...args):void
{
  var s:String = new String("");
  for(var i:int=0;i<args.length;i++){
    s += args[i];
  }
  
  try{
    ExternalInterface.call("(function(s){$(\"message\").value += s; $(\"message\").scrollTop = $(\"message\").scrollHeight - $(\"message\").clientHeight;})", s);
  }catch(e:Error){
    throw e;
  }
}