/ scripts / com / adobe / net / URIEncodingBitmap.as
URIEncodingBitmap.as
 1  package com.adobe.net
 2  {
 3     import flash.utils.ByteArray;
 4     
 5     public class URIEncodingBitmap extends ByteArray
 6     {
 7         
 8        
 9        public function URIEncodingBitmap(charsToEscape:String)
10        {
11           var i:int = 0;
12           var c:int = 0;
13           var enc:int = 0;
14           super();
15           var data:ByteArray = new ByteArray();
16           for(i = 0; i < 16; i++)
17           {
18              this.writeByte(0);
19           }
20           data.writeUTFBytes(charsToEscape);
21           data.position = 0;
22           while(Boolean(data.bytesAvailable))
23           {
24              c = data.readByte();
25              if(c <= 127)
26              {
27                 this.position = c >> 3;
28                 enc = this.readByte();
29                 enc |= 1 << (c & 7);
30                 this.position = c >> 3;
31                 this.writeByte(enc);
32              }
33           }
34        }
35        
36        public function ShouldEscape(char:String) : int
37        {
38           var c:int = 0;
39           var mask:int = 0;
40           var data:ByteArray = new ByteArray();
41           data.writeUTFBytes(char);
42           data.position = 0;
43           c = data.readByte();
44           if(Boolean(c & 128))
45           {
46              return 0;
47           }
48           if(c < 31 || c == 127)
49           {
50              return c;
51           }
52           this.position = c >> 3;
53           mask = this.readByte();
54           if(Boolean(mask & 1 << (c & 7)))
55           {
56              return c;
57           }
58           return 0;
59        }
60     }
61  }