In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

無理やり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してみりゃだいたいワカル。
/**
 * Copyright yoneken ( http://wonderfl.net/user/yoneken )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/nFxH
 */

// 注.このスクリプトは編集画面でのみ動作します。

// コピペすべき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.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
    {
      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){$(\"compiler_messages\").value += s; $(\"compiler_messages\").scrollTop = $(\"compiler_messages\").scrollHeight - $(\"compiler_messages\").clientHeight;})", s);
  }catch(e:Error){
    throw e;
  }
}

//*
//-------------------------------------------------
</textarea> 
</div> 
<script language="javascript" defer="defer"> 
function setAllowScriptAccess(){ 
  if(!Wonderfl.Renderer){ 
    setTimeout(setAllowScriptAccess, 500); 
  }else{ 
    delete Wonderfl.Renderer; 
    Wonderfl.Renderer = new function() { 
      return { 
        render : function( swf ) { 
          // cleanup 
          $("swf_container").innerHTML = "<div id=\"swf\"></div>"; 
          // embed 
          var flashvars  = {}; 
          var params = {"quality":"high", "allowScriptAccess":"always"}; 
          var attributes = {"id": "swf", "name":"swf", "align":"middle"}; 
          swfobject.embedSWF( swf, "swf", "465", "465", "10.0.0", "/swf/expressInstall.swf", flashvars, params, attributes ); 
//          $("compiler_messages").value += "trace message is here !\r\n"; 
        } 
      } 
    } 
  }; 
} 
setTimeout(setAllowScriptAccess, 500); 
</script> 
<div style="display:none;"> 
<textarea>*/