buildCompressed method

Uint8List buildCompressed()

buildのCWS(zlib圧縮SWF)版。

CWSはSWF仕様上version 6以降でのみ有効なため、それ未満では組み立てを 拒否する(仕様上不正なフィクスチャの生成を防ぐ)。

Implementation

Uint8List buildCompressed() {
  if (version < 6) {
    throw ArgumentError.value(version, 'version', 'CWS(zlib圧縮)はSWF 6以降のみ');
  }
  final plain = build();
  final bodyBytes = plain.sublist(8);
  final compressed = const ZLibEncoder().encode(bodyBytes);

  final header = BitWriter();
  header.writeBytes('CWS'.codeUnits);
  header.writeUI8(version);
  header.writeUI32(plain.length);
  header.writeBytes(compressed);
  return header.toBytes();
}