Debugging 无跟踪调试AS2

Debugging 无跟踪调试AS2,debugging,actionscript-2,trace,Debugging,Actionscript 2,Trace,目的是在FlashCS6IDE之外调试AS2。它来自一个使用大量导入类的游戏。我对AS2的了解充其量是有限的,因此它目前似乎无法产生在其他语言中常见的简单任务,例如写入文本文件,甚至只是显示变量的内容,这在这里是必需的。 有什么简单的办法吗 这个游戏是非HTML的,使用了一些scaleform对象。 例如,在使用文本工具粘贴的新文本对象中创建一个框架。在行动中: var displaytext = _root.attachMovie("coords", "coords" + root.getNe

目的是在FlashCS6IDE之外调试AS2。它来自一个使用大量导入类的游戏。我对AS2的了解充其量是有限的,因此它目前似乎无法产生在其他语言中常见的简单任务,例如写入文本文件,甚至只是显示变量的内容,这在这里是必需的。 有什么简单的办法吗

这个游戏是非HTML的,使用了一些scaleform对象。 例如,在使用文本工具粘贴的新文本对象中创建一个框架。在行动中:

var displaytext = _root.attachMovie("coords", "coords" + root.getNextHighestDepth(), _root.getNextHighestDepth());
 displaytext.innerText.text = "hi";
在课堂上:

class coords extends MovieClip {

    public function coords() {
        // constructor code
    }

private var innerText:TextField;

function SetText(text)
{
        innerText.text = text;
}
}

但游戏中没有显示任何内容。

要在Flash IDE外部调试swf,可以使用调用HTML页面中的任何javascript函数,例如:

ExternalInterface.call('console.log', 'your debug text'); 
这将直接在浏览器的控制台日志中显示您的文本,当然,如果您的浏览器不支持
console.log
,您可以使用任何其他方法获取文本,如下所示:

如第2条所示:

ExternalInterface.call('log', 'your debug text'); 
function log(message){
    document.getElementById('log').innerHTML += '<br>' + message;
}
Javascript:

ExternalInterface.call('log', 'your debug text'); 
function log(message){
    document.getElementById('log').innerHTML += '<br>' + message;
}
功能日志(消息){
document.getElementById('log').innerHTML+='
'+消息; }
您还可以使用FlashPlayer日志文件(flashlog.txt)将所有跟踪语句保存到外部文本文件中。 为此,您必须启用swf的调试(从Flash IDE发布设置),并使用Flash Player调试版本(您可以从中获得),然后您可以查看我的答案以获取您的flashlog.text

如果您在本地测试,请查看我的答案,以避免一些Flash Player安全问题


希望能有所帮助。

谢谢akmozo,它不是一款浏览器游戏,更新了一个非工作场景的问题。不知道这在这里是否合法,但无论如何都是这样。