【问题标题】:Flash trace output in firefox, linuxFirefox、Linux 中的 Flash 跟踪输出
【发布时间】:2009-05-05 15:07:01
【问题描述】:

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

【问题讨论】:

    标签: linux flash actionscript trace


    【解决方案1】:

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

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

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

    ErrorReportingEnable=1 TraceOutputFileEnable=1 MaxWarnings=50
    

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

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

    有点像

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

    应该足以跟踪跟踪。

    【讨论】:

    • 这就是我想要做的。 (见这里:stackoverflow.com/questions/827843/…)如果你能弄清楚,请告诉我,谢谢你的回复......
    • Errrm,使用纯 trace("stuff) 而不是外部接口的东西,你会开始看到日志文件中的文本。
    【解决方案2】:

    我多年来一直使用的另一种令人难以置信的简单解决方法是直接在 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();
    }
    

    [/编辑]

    【讨论】:

    • 我也想过这个问题。我如何制作一个弹出窗口来为我提供 ExternalInterface.available 的值? Flash 中必须有一个类似于 javascript 中的 alert() 的函数...
    • 甜蜜。我迫不及待想试试这个。我一直觉得我越来越近了……谢谢你所做的一切……
    • 第一个版本什么都不做,第二个'加强'版本给出了编译器错误。我在这里强调了我认为合适的行 -> pastebin.com/f3b3791c2 如果有人想查看它们(请)
    • 增强版本的编译器错误(有 5 个)包括 2 或 3 个引用“sprite”命令。我一定有什么问题......
    • 对不起 danwoods,我没有在顶部包含 import 语句,这几乎肯定是你的问题的根源。您需要确保您正在导入 flash.display.Sprite(可能还有 flash.text.TextField 和 flash.events.MouseEvent)。
    【解决方案3】:

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

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

    【讨论】:

    • 哈哈,我正在尝试跟踪使用 ExternalInterface 遇到的错误 这是帖子:stackoverflow.com/questions/818089/…
    • 但是感谢有关 console.log() 的信息,一旦我让 externalInterface 工作,我肯定会使用它
    【解决方案4】:

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

    【讨论】:

    • 知道如何包含这些类吗? (我认为它应该是这样工作的......)
    • 只需将它们放在类路径中并导入它们。以下是更多提示和技巧:websector.de/blog/2008/06/15/…
    【解决方案5】:

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

    再一次,我最感兴趣的是 Flash 已经变得对 Unix 友好了:)

    【讨论】:

      【解决方案6】:

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

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

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

      PC 上的位置:C:\Documents and Settings\username

      mm.cfg 的内部应该是:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-03
        • 1970-01-01
        • 2010-11-13
        • 1970-01-01
        相关资源
        最近更新 更多