Actionscript 3 如何跟踪actionscript中代码的执行顺序?

Actionscript 3 如何跟踪actionscript中代码的执行顺序?,actionscript-3,apache-flex,flash-builder,Actionscript 3,Apache Flex,Flash Builder,我在空中编写一个移动应用程序,我经常遇到同样的问题:执行的顺序是什么?我知道可以确定UI类的初始化、创建等顺序。我还可以将跟踪语句放入每个类的构造函数中,并以这种方式执行。但那太乏味了 是否有一段通用代码,让每个类在加载时“宣布”自己?有人写过这样的东西吗 伪代码类似于: for each var class:Class in application { trace(class.getQualifiedClassName.toString(); } 谢谢 编辑: 这里有一个例子。我运

我在空中编写一个移动应用程序,我经常遇到同样的问题:执行的顺序是什么?我知道可以确定UI类的初始化、创建等顺序。我还可以将跟踪语句放入每个类的构造函数中,并以这种方式执行。但那太乏味了

是否有一段通用代码,让每个类在加载时“宣布”自己?有人写过这样的东西吗

伪代码类似于:

for each var class:Class in application
{
     trace(class.getQualifiedClassName.toString();
}
谢谢

编辑:

这里有一个例子。我运行MyApp.mxml并在其上放置跟踪语句。第一个视图是由一个数组填充的列表,该数组通过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)。

这里有一些与您想要的接近的内容:

var numChildren:Number = this.numChildren;
for (var i:int = 0; i < numChildren; i++) {
    var displayObject:DisplayObject = this.getChildAt(i);
    displayObject.addEventListener(FlexEvent.INITIALIZE, function (e:FlexEvent):void {
        trace("child " + displayObject.name +" is initializing" );
    });
    displayObject.addEventListener(FlexEvent.CREATION_COMPLETE, function (e:FlexEvent):void {
        trace("child " + displayObject.name +"'s creation is completed" );
    });                     
}
var numChildren:Number=this.numChildren;
for(变量i:int=0;i

您需要将其添加到主应用程序的
初始化
事件处理程序。

在mm.cfg文件中指定
AS3Trace
,将提供执行功能的完整消防软管


有关其他隐藏的mm.cfg功能,请参阅,并在移动应用程序中运行mm.cfg

执行什么命令?你在用Flex吗?如果是这样的话,Flex组件生命周期将控制生命周期方法的执行顺序,您可能需要花一些时间来了解这一点。我认为大多数类——不管是否是Flex——都会发送一个“AddedStatage”事件。但是,我不清楚这是否符合您在本例中对“加载”的定义。是的,使用Flex,是的,我理解生命周期——这就是我所说的“确定初始化顺序”等。假设我有100个类。我想问的是,是否有办法写一行或几行代码,让每个类都跟踪“我的构造函数正在运行!”而不必经历并创建100次跟踪语句。对于不在显示列表中的类也是如此。您可以在AS3中创建这样的全局变量:但我认为这不能满足您的需要。您几乎需要一个全局构造函数跟踪语句。您可能需要在类层次结构中尽可能深入,并调整该构造函数以添加代码。它可能涉及重新编译Flex框架。对于所有的类层次结构,您必须做同样的事情;因为您将无法编辑主Flash“Object”类。我不知道这有什么用。是的,很好。对于不在显示列表上的类,有没有办法做到这一点?我已经在上面添加了一个带有额外说明的编辑。我不认为这会给@David他想要的一切,因为这不是递归的,所以这里不包括孩子的孩子。其次,子组件的初始化事件将在父组件的初始化事件之前调度;因此,初始化事件侦听器是在初始化事件触发后添加的。