forked from: 無理やりtrace (IE・Firefox・Opera)
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してみりゃだいたいワカル。
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;
}
}