4

我正在开发一个在我的 linux 桌面上的服务器上运行的应用程序。由于 Linux 上 Flash 的缺点(阅读:太难了),我正在 Windows 中开发应用程序的(小)Flash 部分,这意味着来回有很多令人沮丧的事情。现在我正在尝试使用闪存跟踪器捕获闪存部分的输出,这也证明非常困难。有没有其他方法可以监控 linux 上的跟踪输出?谢谢...

4

6 回答 6

5

希望这也有帮助(为了我来自谷歌搜索):

为了进行跟踪,您需要来自 http://www.adobe.com/support/flashplayer/downloads.html的 Flash Player 的调试器版本(专门寻找“调试器”版本 - 乍一看很难发现)

然后您家中的 mm.cfg 文件包含

ErrorReportingEnable=1 TraceOutputFileEnable=1 MaxWarnings=50

然后你就可以开始了 - 重新启动浏览器。当traces开始填写时,你会发现log文件在

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

就像是

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

应该足以跟踪跟踪。

于 2009-05-06T15:35:14.223 回答
3

我多年来一直使用的一种不同的、令人难以置信的简单解决方法是直接在 swf 中创建一个输出模块。所有这一切都意味着一个键盘快捷键,它附加了一个带有文本字段的 MovieClip。我的所有跟踪都转到此文本字段,而不是(或除此之外)输出窗口。多年来,我当然已经改进了它,使窗口可拖动、调整大小等。但我从来不需要任何其他方法来进行简单的日志记录,而且它在所有平台上都是 100% 可靠和可重用的。

[编辑 - 对评论的回应] 没有像 javascript 的 alert() 函数那样的警报。但是使用内部文本字段就是这么简单:

动作脚本 1 版本


(见底部注释)

/* 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);
}

注意:这适用于 AS1,并且可以很好地转换为 AS2(如果这样做,最好使用强数据类型,但不是严格要求)。它应该在 Flash Player 8-10 中工作。ExternalInterface 是在 Flash 8 中添加的,因此它在以前的播放器版本中不起作用。

动作脚本 3 版本


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

如果你想加强一点:

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();
}

[/编辑]

于 2009-05-06T08:12:59.013 回答
1

如果只需要运行时的trace输出,可以在Firefox中使用Firebug,然后使用Flash.external.ExternalInterface调用Firebug提供的console.log() Javascript方法。

我已经多次使用这种策略并取得了很大的成功。

于 2009-05-05T15:31:32.617 回答
0

我使用 linux 上的 flex 编译器来构建动作脚本文件,[embed(source="file")] 用于我的所有资产,包括图像和字体,我发现 linux 上的动作脚本开发对开发人员非常友好。

再说一次,我最感兴趣的是闪存已经变成了对 Unix 友好的方式,相反 :)

于 2009-07-27T19:22:53.120 回答
0

Thunderbolt是一个很棒的日志框架,具有内置的 firebug 支持。

于 2009-05-05T16:05:24.080 回答
0

要实现 FlashTracer,请访问以下地址并确保您拥有最新的文件。 http://www.sephiroth.it/firefox/flashtracer/。安装它并重新启动浏览器。

前往 adobe 并获取最新的闪存调试器。下载并安装 firefox 版本,因为 FlashTracer 是 firefox 添加的。

现在 firefox 有了最新的 flash 调试器和 flash 跟踪器,我们需要找到 mm.cfg

电脑位置:C:\Documents and Settings\username

里面mm.cfg应该是:

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

保存后,打开 Firefox,通过前往工具 > 闪光追踪器前往闪光追踪器窗口。在弹出的面板中,右下角有两个图标,单击扳手并确保将路径设置为保存日志文件的位置。还要检查一下闪光灯跟踪器是否打开,底部有一个播放/暂停按钮。

我目前使用这个实现,希望它对你有用。Flash Tracer 有点旧,但可以与最新版本的 FireFox 一起使用。我将它与 FireFox 3.0.10 一起使用。

于 2009-05-11T01:00:19.900 回答