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);