Flash trace output in firefox, linux

不羁的心 提交于 2019-12-01 06:47:30

Hope this helps too (for the sake of google search i came from):

In order to do trace, you need the debugger version of Flash Player from http://www.adobe.com/support/flashplayer/downloads.html (look for "debugger" version specifically - they are hard to spot on first look)

Then an mm.cfg file in your home containing

ErrorReportingEnable=1 TraceOutputFileEnable=1 MaxWarnings=50

And then you are good to go - restart the browser. When traces start to fill in, you will find the log file in

~/.macromedia/Flash_Player/Logs/flashlog.txt

Something like

tail ~/.macromedia/Flash_Player/Logs/flashlog.txt -f

Should suffice to follow the trace.

A different and mind-bogglingly simple workaround that I've used for years is to simply create an output module directly within the swf. All this means is a keyboard shortcut that attaches a MovieClip with a textfield. All my traces go to this textfield instead of (or in addition to) the output window. Over the years I've refined it of course, making the window draggable, resizable, etc. But I've never needed any other approach for simple logging, and it's 100% reliable and reusable across all platforms.

[EDIT - response to comment] There's no alert quite like javascript's alert() function. But using an internal textfield is just this simple:

ACTIONSCRIPT 1 VERSION


(See notes at bottom)

/* import ExternalInterface package */
import flash.external.*;

/* Create a movieclip for the alert. Set an arbitrary (but very high) number for the depth
 * since we want the alert in front of everything else.
 */
var alert = this.createEmptyMovieClip("alert", 32000);
/* Create the alert textfield */
var output_txt = alert.createTextField("output_txt", 1, 0, 0, 300, 200);
output_txt.background = true;
output_txt.backgroundColor = 0xEFEFEF;
output_txt.selectable = false;
/* Set up drag behaviour */
alert.onPress = function()
{
    this.startDrag();
}
alert.onMouseUp = function()
{
    stopDrag();
}

/* I was using a button to text EI. You don't need to. */
testEI_btn.onPress = function()
{
    output_txt.text = (ExternalInterface.available);
}

Notes: This works fine for AS1, and will translate well into AS2 (best to use strong data-typing if doing so, but not strictly required). It should work in Flash Players 8-10. ExternalInterface was added in Flash 8, so it won't work in previous player versions.

ACTIONSCRIPT 3 VERSION


var output_txt:TextField = new TextField();
addChild(output_txt);
output_txt.text = (String(ExternalInterface.available));

If you want to beef it out a bit:

var alert:Sprite = new Sprite();
var output_txt:TextField = new TextField();
output_txt.background = true;
output_txt.backgroundColor = 0xEFEFEF;
output_txt.selectable = false;
output_txt.width = 300;
output_txt.height = 300;
alert.addChild(output_txt);
addChild(alert);

alert.addEventListener(MouseEvent.MOUSE_DOWN, drag);
alert.addEventListener(MouseEvent.MOUSE_UP, stopdrag);

output_txt.text = (String(ExternalInterface.available));

function drag(e:MouseEvent):void
{
    var alert:Sprite = e.currentTarget as Sprite;
    alert.startDrag();
}

function stopdrag(e:MouseEvent):void
{
    var alert:Sprite = e.currentTarget as Sprite;
    alert.stopDrag();
}

[/EDIT]

If you only need the trace output at runtime, you can use Firebug in Firefox and then use Flash.external.ExternalInterface to call the console.log() Javascript method provided by Firebug.

I've used that strategy multiple times to a large degree of success.

Thunderbolt is a great logging framework with built-in firebug support.

I use the flex compiler on linux to build actionscript files, [embed(source="file")] for all my assets including images and fonts, I find actionscript development on linux very developer friendly.

Then again, I'm most interested in that flash has become Unix Friendly as aposed to the other way around :)

Brian Hodge

To implement FlashTracer, head to the following address and be sure you have the latest file. http://www.sephiroth.it/firefox/flashtracer/ . Install it and restart the browser.

Head over to adobe and get the latest flash debugger. Download and install the firefox version as FlashTracer is a firefox addition.

Now that firefox has the latest flash debugger and flash tracer we need to locate mm.cfg

Location on PC: C:\Documents and Settings\username

Inside of mm.cfg should be:

ErrorReportingEnable=1
TraceOutputFileEnable=1
MaxWarnings=100 //Change to your own liking.

Once that is saved, open firefox, head to the flash tracer window by heading to tools > flash tracer. In the panel that pops up there is two icons in the bottom right corner, click the wrench and make sure the path is set to where your log file is being saved. Also check to see that flash tracer is turned on, there is a play/pause button at the bottom.

I currently use this implementation and hope that it works for you. Flash Tracer is a little old, but works with the newest versions of FireFox. I am using it with FireFox 3.0.10.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!