if (firstByte == 0) break; final ButtonRecord record = new ButtonRecord(); record.setHasBlendMode((firstByte & 0x20) > 0); record.setHasFilterList((firstByte & 0x10) > 0); record.setStateHitTest((firstByte & 0x08) > 0); record.setStateDown((firstByte & 0x04) > 0); record.setStateOver((firstByte & 0x02) > 0); record.setStateUp((firstByte & 0x01) > 0); record.setCharacterID(bitStream.readUI16()); record.setPlaceDepth(bitStream.readUI16()); record.setPlaceMatrix(readMatrix()); if (type == TagType.DefineButton2) record.setColorTransform(readColorTransformWithAlpha()); if (record.isHasFilterList()) for (int i = 0; i < count; i++) filterList[i] = readFilter(); record.setFilterList(filterList); if (record.isHasBlendMode()) record.setBlendMode(bitStream.readUI8());
private void writeButtonRecord(ButtonRecord record, TagType tagType) { tagBuffer.writeUB(0, 2); // reserved tagBuffer.writeBit(record.isHasBlendMode()); tagBuffer.writeBit(record.isHasFilterList()); tagBuffer.writeBit(record.isStateHitTest()); tagBuffer.writeBit(record.isStateDown()); tagBuffer.writeBit(record.isStateOver()); tagBuffer.writeBit(record.isStateUp()); tagBuffer.writeUI16(record.getCharacterID()); tagBuffer.writeUI16(record.getPlaceDepth()); writeMatrix(record.getPlaceMatrix()); if (tagType == TagType.DefineButton2) { writeColorTransformWithAlpha(record.getColorTransform()); if (record.isHasFilterList()) { tagBuffer.writeUI8(record.getFilterList().length); for (final Filter filter : record.getFilterList()) writeFilter(filter); } if (record.isHasBlendMode()) tagBuffer.writeUI8(record.getBlendMode()); } }
indent(); out.println("<buttonRecord " + "idref=\"" + record.getCharacterID() + "\" " + //TODO: print symbol name "depth=\"" + record.getPlaceDepth() + "\" " + "matrix=\"" + record.getPlaceMatrix() + "\" " + "stateHitTest=\"" + record.isStateHitTest() + "\" " + "stateDown=\"" + record.isStateDown() + "\" " + "stateOver=\"" + record.isStateOver() + "\" " + "stateUp=\"" + record.isStateUp() + "\" " + "/>");
indent(); out.println("<buttonRecord " + "idref=\"" + record.getCharacterID() + "\" " + //TODO: print symbol name "depth=\"" + record.getPlaceDepth() + "\" " + "matrix=\"" + record.getPlaceMatrix() + "\" " + "stateHitTest=\"" + record.isStateHitTest() + "\" " + "stateDown=\"" + record.isStateDown() + "\" " + "stateOver=\"" + record.isStateOver() + "\" " + "stateUp=\"" + record.isStateUp() + "\" " + "/>");
if (firstByte == 0) break; final ButtonRecord record = new ButtonRecord(); record.setHasBlendMode((firstByte & 0x20) > 0); record.setHasFilterList((firstByte & 0x10) > 0); record.setStateHitTest((firstByte & 0x08) > 0); record.setStateDown((firstByte & 0x04) > 0); record.setStateOver((firstByte & 0x02) > 0); record.setStateUp((firstByte & 0x01) > 0); record.setCharacterID(bitStream.readUI16()); record.setPlaceDepth(bitStream.readUI16()); record.setPlaceMatrix(readMatrix()); if (type == TagType.DefineButton2) record.setColorTransform(readColorTransformWithAlpha()); if (record.isHasFilterList()) for (int i = 0; i < count; i++) filterList[i] = readFilter(); record.setFilterList(filterList); if (record.isHasBlendMode()) record.setBlendMode(bitStream.readUI8());
private void writeButtonRecord(ButtonRecord record, TagType tagType) { tagBuffer.writeUB(0, 2); // reserved tagBuffer.writeBit(record.isHasBlendMode()); tagBuffer.writeBit(record.isHasFilterList()); tagBuffer.writeBit(record.isStateHitTest()); tagBuffer.writeBit(record.isStateDown()); tagBuffer.writeBit(record.isStateOver()); tagBuffer.writeBit(record.isStateUp()); tagBuffer.writeUI16(record.getCharacterID()); tagBuffer.writeUI16(record.getPlaceDepth()); writeMatrix(record.getPlaceMatrix()); if (tagType == TagType.DefineButton2) { writeColorTransformWithAlpha(record.getColorTransform()); if (record.isHasFilterList()) { tagBuffer.writeUI8(record.getFilterList().length); for (final Filter filter : record.getFilterList()) writeFilter(filter); } if (record.isHasBlendMode()) tagBuffer.writeUI8(record.getBlendMode()); } }