我最近开始使用Flash Builder在Flash中编程。来自JavaScript我习惯于“交互式”控制台(Chrome的默认控制台) - 通过交互式我的意思是我可以例如单击一个Object来显示它的属性,并在运行时执行代码。它还显示“trace()”语句来自哪个文件和哪一行。
闪存可以吗? 我很幸运地试过“FlashFireBug”和“Vizzy”。
答案 0 :(得分:0)
你可以在某种程度上做到这一点。 Flash Builder基于Eclipse,因此默认安装了广泛的调试框架。要做任何事情,首先需要插入断点(双击一行左侧的灰色条,或右键单击>添加断点)。与开发控制台中的JS一样,这将阻止代码执行在该精确的行,并允许您单步执行,跳过,等等。此外,它将允许您访问“表达式”和“变量”窗格。
“变量”窗格使您可以访问断点处行范围内的所有对象。有了这个,您可以查看每个对象的每个属性。您还可以将这些属性更改为不同的值。然而,这并不像JS控制台那样好用,因为AS3的类型有多严格。您可以更改的内容有限,这只是原始数据类型:Number,String,Array,Object。除此之外的一切,我不相信你可以改变价值观。
“表达式”窗格使您能够调用属性或运行表达式并获得值的完整读数(因此您不必挖掘对象,只需调用它)。这又是有限的。您在此窗格中执行的操作实际上不会更改任何内容。您可以运行一个函数,它将返回该值,但不会修改程序中的任何内容。
您可以输入控制台本身,但它不会执行任何操作。
据我所知,没有办法获得跟踪位置。我通常会做任何长时间保持原状的痕迹:
trace( "[ClassName] trace output" );
这样我至少知道它来自哪个班级。如果您创建自己的跟踪功能(最有可能使用静态方法),您也可以自动执行该操作。除此之外,我认为你不能做得更多。
JS和AS3的主要区别在于AS3是一种编译语言。许多代码实际上是在编译时运行和计算的,因此在运行时可以做的更少。 JS在调用时运行所有内容,这就是为什么你可以修改开发工具中的代码并调用它,然后执行更改。据我所知,不幸的是,由于这种限制,你所寻找的东西根本无法用AS3实现。