我正在 AIR 中编写移动应用程序,经常遇到同样的问题:执行顺序是什么?我知道可以确定 UI 类的初始化、创建等顺序。我还可以将跟踪语句放入每个类的构造函数中,并这样做。但这很乏味。
是否有一段通用代码可以让每个类在加载时“宣布”自己?有人写过这样的东西吗?
伪代码类似于:
for each var class:Class in application
{
trace(class.getQualifiedClassName.toString();
}
谢谢。
编辑:
这是一个例子。我运行 MyApp.mxml 并在其上放置跟踪语句。第一个 View 是一个由数组填充的列表,该数组通过 xml 来自服务器。但当应用程序加载时,列表是空白的。为什么?由于以下事件顺序,基于我手动插入的跟踪语句:
MyApp::viewnavigatorapplication1_intitializeHandler firing
Model::initialize function firing
XMLLoader::going to http://mysite.com/myxml.xml
MyApp::addedToStageHandler running
HomeListView::viewActivateHandler firing
XMLLoader::xmlLoaded
列表为空的原因是 HomeListView 被激活后加载 xml。因此,如果有一种方法可以获取所有这些信息,而不必在类里面一遍遍地写下来,那将会很有帮助。请注意,并非所有类都在显示列表中(例如 Model 和 XMLLoader)。
最佳答案
在 mm.cfg 文件中指定 AS3Trace
将提供执行函数的完整流程。
参见this blog post对于其他隐藏的 mm.cfg 功能,以及 here is some help让 mm.cfg 在您的移动应用程序中运行。
关于actionscript-3 - 如何跟踪actionscript中代码的执行顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13845600/