2015-03-13 87 views
0

目的是在Flash CS6 IDE之外调试AS2。从游戏内部使用相当多的导入类。我对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; 
} 
} 

但什么也不显示在游戏中。

回答

2

要调试的Flash IDE之外你的SWF,您可以使用ExternalInterface.call()调用任何JavaScript函数在HTML页面中,比如,你可以这样做:

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

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

为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安全问题。

希望能有所帮助。

+0

感谢akmozo,它不是一个浏览器游戏,更新了一个非工作场景的问题。不知道,如果这在这里是相当合法的,但无论如何都会有。 – 2015-03-14 04:02:12