private void parseHeader(Element headerElement) { if (RecordXMLReader.getBooleanAttribute("omitbinarydata", headerElement)) { throw new IllegalArgumentException( "XML files with omitbinarydata flag set cannot be transformed back to SWF!"); } short swfVersion = RecordXMLReader.getShortAttribute("swfversion", headerElement); swfDocument.setVersion(swfVersion); swfDocument.setCompressed(RecordXMLReader.getBooleanAttribute("compressed", headerElement)); Element framesElement = RecordXMLReader.getElement("frames", headerElement); swfDocument.setFrameCount(RecordXMLReader.getIntAttribute("count", framesElement)); swfDocument.setFrameRate(RecordXMLReader.getShortAttribute("rate", framesElement)); Element sizeElement = RecordXMLReader.getElement("size", framesElement); swfDocument.setFrameSize(RecordXMLReader.readRect(sizeElement)); Element backgroundColorElement = RecordXMLReader.getElement("bgcolor", headerElement); swfDocument.setBackgroundColor(RecordXMLReader.readRGB(backgroundColorElement)); if (swfVersion >= 8) { String access = RecordXMLReader.getStringAttribute("access", headerElement); if (access.equals("local")) { swfDocument.setAccessMode(SWFDocument.ACCESS_MODE_LOCAL); } else if (access.equals("network")) { swfDocument.setAccessMode(SWFDocument.ACCESS_MODE_NETWORK); } Element metadata = headerElement.element("metadata"); if (metadata != null) { swfDocument.setMetadata(Base64.decodeString(metadata.getText())); } } }