UB,SB:
1: public function readRect(input:DataInput,context:ReadingContext,rect:Rect= null):Rect
2: {
3: if(!rect)
4: {
5: rect = new Rect();
6: }
7: input.resetBitCursor();//表示 读取位数,读取2进制
8: //
9: var numBits:uint = input.readUBits(5);
10: //
11: rect.xMinTwips = input.readSBits(numBits);
12: rect.xMaxTwips = input.readSBits(numBits);
13: rect.yMinTwips = input.readSBits(numBits);
14: rect.yMaxTwips = input.readSBits(numBits);
15: //
16: return rect;
17: }
readUBits点击查看
readSBits方法:
1: public function readSBits(numBits:uint):int
2: {
3: var val:uint = readUBits(numBits);
4: var shift:uint = 32 - numBits;
5: var result:int = (val << shift) >> shift;
6: return result;
7: }
Rect类:
package
{
public class Rect
{
//
private var _xMin:int = 0;
private var _xMax:int = 0;
private var _yMin:int = 0;
private var _yMax:int = 0;
//
public function Rect()
{
}
//
// SB
public function get xMin():Number
{
return xMinTwips / 20;
}
public function set xMin(value:Number):void
{
xMinTwips = value * 20;
}
public function get xMinTwips():int
{
return _xMin;
}
public function set xMinTwips(value:int):void
{
_xMin = value;
}
// SB
public function get xMax():Number
{
return xMaxTwips / 20;
}
public function set xMax(value:Number):void
{
xMaxTwips = value * 20;
}
public function get xMaxTwips():int
{
return _xMax;
}
public function set xMaxTwips(value:int):void
{
_xMax = value;
}
// SB
public function get yMin():Number
{
return yMinTwips / 20;
}
public function set yMin(value:Number):void
{
yMinTwips = value * 20;
}
public function get yMinTwips():int
{
return _yMin;
}
public function set yMinTwips(value:int):void
{
_yMin = value;
}
// SB
public function get yMax():Number
{
return yMaxTwips / 20;
}
public function set yMax(value:Number):void
{
yMaxTwips = value * 20;
}
public function get yMaxTwips():int
{
return _yMax;
}
public function set yMaxTwips(value:int):void
{
_yMax = value;
}
}
}