[AS3] 怎样读取swf的所有链接类(在未知类名的情况下)

来源:互联网 发布:虔泰网络公司员工名单 编辑:程序博客网 时间:2024/05/10 03:07

原文:http://bbs.9ria.com/thread-76243-1-1.html

 

private function analyseSWF(bytes:ByteArray):void
{
      var id:int;
      var head:int;
      var size:int;
      var i:int;
      var name:String;
      var len:int;
      var lastPosition:int;
      var num:int;
      bytes.endian = Endian.LITTLE_ENDIAN;
      bytes.position = Math.ceil(((bytes[8]>>1)+5)/8)+12;
      while(bytes.bytesAvailable>0)//字节数组剩余可读数据长度大于2个字节
      {
            head = bytes.readUnsignedShort();//读取tag类型
            size = head&63;//判断低6位的值是否是63,如果是,这个tag的长度就是下面的32位整数,否则就是head的低6位
            if (size == 63)size=bytes.readInt();
            type = head>>6;
            if(type != 76)
           {
                 bytes.position += size;
           }
           else
           {
                num = bytes.readShort();
                for(i=0; i<num; i++)
               {
                    id = bytes.readShort();//读取tag ID
                    lastPosition = bytes.position;
                    while(bytes.readByte() != 0);//读到字符串的结束标志
                    len = bytes.position - lastPosition;
                    bytes.position = lastPosition;
                    name = bytes.readUTFBytes(len).toString();
                    trace("连接名:"+name);
               }
           }
     }
}

原创粉丝点击