不使用Trace调试AS2

时间:2015-03-13 11:50:23

标签: debugging actionscript-2 trace

目的是在Flash CS6 IDE之外调试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;
}
}

但游戏中没有任何内容。

1 个答案:

答案 0 :(得分:2)

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

ExternalInterface.call('console.log', 'your debug text'); 

这会直接在浏览器的控制台日志中显示您的文字,当然如果您的浏览器不支持console.log,您可以使用任何其他方法来获取您的文字:

AS 2:

ExternalInterface.call('log', 'your debug text'); 

Javascript:

function log(message){
    document.getElementById('log').innerHTML += '<br>' + message;
}

您还可以使用Flash Player日志文件(flashlog.txt)将所有跟踪语句保存到外部文本文件中。 为此,您必须为swf启用调试(从Flash IDE发布设置)并使用Flash Player调试版本(可以从here获取),然后您可以查看我的答案this question获取你的flashlog.text。

如果您在本地进行测试,请查看我对this question的回答,以避免一些Flash Player安全问题。

希望可以提供帮助。