博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
avm2 pcode 学习笔记。高手勿笑
阅读量:5145 次
发布时间:2019-06-13

本文共 2719 字,大约阅读时间需要 9 分钟。

1  getlocal_0  2 pushscope          //一般一段methodbody  开头都是这么2个,  3                            //               pushscope    推一个对象到范围堆栈。        getlocal_0   得到局部寄存器。或者说当前类好点  4   5   6     FindPropertyStrict    
(1563) addFrameScript 7 PushByte 0 //压入0 8 GetLocal0 //得到当前对象,翻译成this. 9 GetProperty
(1564) _SafeStr120 //获取属性 10 PushByte 3 11 GetLocal0 12 GetProperty
(1565) _SafeStr121 13 CallPropertyVoid
(1563) addFrameScript,
(4) 14 15 16 翻译结果是 addFrameScript(0, this._SafeStr120, 3, this._SafeStr121); 17 分析执行一段函数是以 FindPropertyStrict
(1563) addFrameScript 18 。。。。。。。。。 19 CallPropertyVoid
(1563) addFrameScript,
(4) 20 21 案例 22 FindPropertyStrict
(1566) stop 23 CallPropertyVoid
(1566) stop,
(0) 24 //这么一段的话,就可以翻译成stop()
(1566)代表stop 每个swf应该都不一样,具体看的 25 26 27 GetLocal0 28 ConstructSuper
(0) super() 29 30 31 GetLocal0 32 PushFalse 33 InitProperty
(1571) _SafeStr90 // InitProperty 初始化信息 34 this._SafeStr90 =false 35 36 37 38 39 40 41 FindProperty
(1572) scrollRect //找到属性 42 FindPropertyStrict
(1573) Rectangle 43 PushByte 0 44 Dup //复制栈的顶值 45 PushShort
(700) 46 PushShort
(630) 47 ConstructProperty
(1573) Rectangle,
(4) 48 InitProperty
(1572) scrollRect //初始化属性 问题这个scrollRect是当前类的父类的。 49 编译成 scrollRect = new Rectangle(0, 0, 700, 630); 50 51 52 dup pushbyte 10 var _loc2_:* = 10 + 10; 53 dup 54 add 55 setlocal_2 56 --------------------------------------------------------- 57 pushbyte 10 var _loc2_:int = 10 + 10; 58 dup 59 add 60 convert_i /./转换成int 61 //convert_b 转换成boolean类型 convert_d 转换成双精度 convert_s 转换成字符串 convert_o 转换成对象(Object) convert_u 转换成unsigned integer 62 63 setlocal_2 64 65 66 67 68 GetLocal2 //得到local2 69 GetLocal3 //得到local3 70 IfNotGreaterEqual @@L__22 //如果local2小于local3 则跳转到L_22 71 if (_local2 >= _local3) 72 73 IfEqual 如果相等跳转 即不等于则执行下面的语句 if(a !=b){ 语句 } 74 IfNotEqual 如果不相等跳转 即等于则执行下面的语句 if(a==b){ 语句 } 75 IfFalse 76 IfTrue 77 IfGreaterEqual 78 IfNotGreaterEqual 79 IfGreaterThan 80 IfNotGreaterThan 81 IfLessEqual 82 IfLowerThan 83 IfNotLowerEqual 84 IfNotLowerThan 85 86 IfStrictEqual 如果全等则跳转 即不全等则执行语句 if(a !== b){ 语句} 87 88 IfStrictNotEqual 如果不全等则跳转 即不全等则执行语句 if(a === b){ 语句} 89 90 91 92 GetLocal0 93 FindPropertyStrict
(1616) Welcome 94 ConstructProperty
(1616) Welcome,
(0) 95 SetProperty
(1615) _SafeStr74 96 this._SafeStr74 = new Welcome(); 97 98 GetLocal0 99 FindPropertyStrict
(1616) Welcome100 PushByte 10101 ConstructProperty
(1616) Welcome,
(1)102 SetProperty
(1615) _SafeStr74103 this._SafeStr74 = new Welcome(10);

 

转载于:https://www.cnblogs.com/as3dashu/p/4139350.html

你可能感兴趣的文章
win平台搭建Lnmp环境
查看>>
python13 1.函数的嵌套定义 2.global、nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器...
查看>>
例6-5
查看>>
网络文学网站的盈利模式分析
查看>>
eclipse变量名自动补全
查看>>
一个数据库操作类(包含弹出对话框函数,也可自定义弹出的脚本内容)
查看>>
HIVE文件
查看>>
转——调试寄存器 原理与使用:DR0-DR7
查看>>
C# MP3文件属性读取
查看>>
团队冲刺06
查看>>
MongoDB基本命令用【转】
查看>>
java字节流复制文件
查看>>
重载和覆盖
查看>>
实验二 进程调度预备
查看>>
7zip在DOS命令行用法总结
查看>>
Xcode开发 字符串用法
查看>>
在IIS中实现JSP
查看>>
[转载]Meta标签详解
查看>>
File,FileStream,byte[]3者互相转换总结(转)
查看>>
springboot 使用devtools 实现热部署
查看>>