// 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.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; } } //* //------------------------------------------------- forked from: 無理やりtrace (IE・Firefox・Opera)