修改swf字节码以输出变量

时间:2013-10-12 07:30:16

标签: actionscript-3 flash debugging

我有一个swf文件,我希望修改字节代码(我正在使用ActionScript Extractor)。

什么是轻松输出变量的好方法,例如快速方法来完成等效(在JS中)

alert(theVariable);

我曾尝试使用adobe的跟踪功能,但效果很差,有时似乎根本不起作用。

2 个答案:

答案 0 :(得分:1)

该功能称为

Alert.show

http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001965.html

Alert.show(message[, title[, flags[, parent[, clickHandler[, icon[, defaultButton]]]]]])

<强>参数

消息要显示的消息。

标题警报标题栏中的文字。此参数是可选的;如果省略它,标题栏就是空白。

flags 可选参数,指示要在“警报”窗口中显示的按钮。默认值为Alert.OK,显示“确定”按钮。使用多个值时,请使用|分隔值字符。使用以下一个或多个值:Alert.OKAlert.CANCELAlert.YESAlert.NO

您还可以使用Alert.NONMODAL来指示“警报”窗口是非模式的。非模态窗口允许用户与应用程序中的其他窗口进行交互。

parent Alert组件的父窗口。 “警报”窗口以父窗口为中心。使用值null或undefined指定_root时间轴。父窗口必须是UIComponent类的子类,可以是作为UIComponent的子类的另一个Flash组件,也可以是作为UIComponent的子类的自定义窗口(有关更多信息,请参阅关于在Adobe Flash中学习ActionScript 2.0中的继承) )。此参数是可选的。

clickHandler 单击按钮时广播的点击事件的处理程序。除了标准的单击事件对象属性外,还有一个附加的detail属性,它包含单击的按钮的标志值(Alert.OK,Alert.CANCEL,Alert.YES,Alert.NO)。此处理程序可以是函数或对象。有关更多信息,请参阅使用侦听器处理使用ActionScript 2.0组件中的事件。

icon 一个字符串,它是库中符号的链接标识符;此符号用作显示在警报文本左侧的图标。此参数是可选的。

defaultButton 指示当用户按Enter键(Windows)或Return键(Macintosh)时,哪个按钮具有初始焦点并单击该按钮。如果用户选中另一个按钮,则在按下Enter键时会触发该按钮。

此参数可以是以下值之一:Alert.OKAlert.CANCELAlert.YESAlert.NO

<强>返回

创建的警报实例。

<强>描述

方法(类);一个类(静态)方法,显示带有消息的警报窗口,可选标题,可选按钮和可选图标。警报的标题显示在窗口的顶部,并且左对齐。图标显示在消息文本的左侧。按钮位于消息文本和图标下方的中心位置。

实施例

以下代码是带有OK按钮的模态警报窗口的简单示例:

mx.controls.Alert.show("Hello, world!");

以下代码定义了一个单击处理程序,该处理程序向“输出”面板发送有关单击了哪个按钮的消息。 (您必须在库中有一个Alert组件才能显示警报;要将组件添加到库中,将其拖到舞台上然后将其删除):

import mx.controls.Alert;

// Define button actions.
var myClickHandler:Function = function (evt_obj:Object) {
 if (evt_obj.detail == Alert.OK) {
trace(Alert.okLabel);
 } else if (evt_obj.detail == Alert.CANCEL) {
trace(Alert.cancelLabel);
 }
};

// Display dialog box.
var dialog_obj:Object = Alert.show("Test Alert", "Test", Alert.OK | Alert.CANCEL, null, myClickHandler, "testIcon", Alert.OK);

答案 1 :(得分:1)

只要它是属性,而不是局部变量,您可以尝试在SWFWire Debugger中运行swf。

您可以通过浏览属性或在对象选项卡中找到变量,如下所示。

Properties and objects

免责声明:我创建了这个项目