diff --git a/trunk/src/com/jpexs/asdec/gui/TagPanel.java b/trunk/src/com/jpexs/asdec/gui/TagPanel.java index bc840db35..1d7110b42 100644 --- a/trunk/src/com/jpexs/asdec/gui/TagPanel.java +++ b/trunk/src/com/jpexs/asdec/gui/TagPanel.java @@ -40,9 +40,11 @@ import com.jpexs.asdec.tags.PlaceObject3Tag; import com.jpexs.asdec.tags.PlaceObjectTag; import com.jpexs.asdec.tags.RemoveObject2Tag; import com.jpexs.asdec.tags.RemoveObjectTag; +import com.jpexs.asdec.tags.SetBackgroundColorTag; import com.jpexs.asdec.tags.ShowFrameTag; import com.jpexs.asdec.tags.SymbolClassTag; import com.jpexs.asdec.tags.Tag; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.BoundedTag; import com.jpexs.asdec.tags.base.CharacterTag; import com.jpexs.asdec.tags.base.FontTag; @@ -159,19 +161,25 @@ public class TagPanel extends JPanel implements ListSelectionListener { sos2.writeUI8(0); sos2.writeUI8(swf.frameRate); sos2.writeUI16(100); //framecnt - //sos2.writeTag(new SetBackgroundColorTag(new RGB(255, 0, 255))); - for (Tag tag : swf.tags) { - if ((!(tag instanceof PlaceObjectTag)) - && (!(tag instanceof PlaceObject2Tag)) - && (!(tag instanceof PlaceObject3Tag)) - && (!(tag instanceof RemoveObjectTag)) - && (!(tag instanceof RemoveObject2Tag)) - && (!(tag instanceof DoActionTag)) - && (!(tag instanceof DoInitActionTag)) - && (!(tag instanceof DoABCTag)) - && (!(tag instanceof SymbolClassTag)) - && (!(tag instanceof ShowFrameTag))) { - sos2.writeTag(tag); + sos2.writeTag(new SetBackgroundColorTag(new RGB(255, 255, 255))); + + if (tagObj instanceof AloneTag) { + sos2.writeTag(tagObj); + }else{ + for (Tag tag : swf.tags) { + if ((!(tag instanceof PlaceObjectTag)) + && (!(tag instanceof PlaceObject2Tag)) + && (!(tag instanceof PlaceObject3Tag)) + && (!(tag instanceof RemoveObjectTag)) + && (!(tag instanceof RemoveObject2Tag)) + && (!(tag instanceof DoActionTag)) + && (!(tag instanceof DoInitActionTag)) + && (!(tag instanceof DoABCTag)) + && (!(tag instanceof SymbolClassTag)) + && (!(tag instanceof ShowFrameTag)) + && (!(tag instanceof SetBackgroundColorTag))) { + sos2.writeTag(tag); + } } } @@ -201,18 +209,18 @@ public class TagPanel extends JPanel implements ListSelectionListener { int countGlyphs = ((FontTag) tagObj).getGlyphShapeTable().length; int fontId = ((FontTag) tagObj).getFontId(); - int sloupcu=(int)Math.ceil(Math.sqrt(countGlyphs)); - int radku=(int)Math.ceil(((float)countGlyphs)/((float)sloupcu)); - int x=0; - int y=1; - for (int f = 0; f < countGlyphs; f++) { - if(x>=sloupcu){ - x=0; + int sloupcu = (int) Math.ceil(Math.sqrt(countGlyphs)); + int radku = (int) Math.ceil(((float) countGlyphs) / ((float) sloupcu)); + int x = 0; + int y = 1; + for (int f = 0; f < countGlyphs; f++) { + if (x >= sloupcu) { + x = 0; y++; } List rec = new ArrayList(); TEXTRECORD tr = new TEXTRECORD(); - int textHeight=height/radku; + int textHeight = height / radku; tr.fontId = fontId; tr.styleFlagsHasFont = true; tr.textHeight = textHeight; @@ -223,10 +231,10 @@ public class TagPanel extends JPanel implements ListSelectionListener { tr.glyphEntries[0].glyphAdvance = 0; tr.glyphEntries[0].glyphIndex = f; rec.add(tr); - mat.translateX=x*width/sloupcu; - mat.translateY=y*height/radku; + mat.translateX = x * width / sloupcu; + mat.translateY = y * height / radku; sos2.writeTag(new DefineTextTag(999 + f, new RECT(0, width, 0, height), new MATRIX(), SWFOutputStream.getNeededBitsU(countGlyphs - 1), SWFOutputStream.getNeededBitsU(0), rec)); - sos2.writeTag(new PlaceObject2Tag(false, false, false, true, false, true, true, false, 1+f, 999 + f, mat, null, 0, null, 0, null)); + sos2.writeTag(new PlaceObject2Tag(false, false, false, true, false, true, true, false, 1 + f, 999 + f, mat, null, 0, null, 0, null)); x++; } sos2.writeTag(new ShowFrameTag()); diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2Tag.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2Tag.java index 3119c227c..8ac89ecc2 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2Tag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2Tag.java @@ -17,11 +17,12 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.CharacterTag; import java.io.ByteArrayInputStream; import java.io.IOException; -public class DefineBitsJPEG2Tag extends CharacterTag { +public class DefineBitsJPEG2Tag extends CharacterTag implements AloneTag { public int characterID; public byte[] imageData; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3Tag.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3Tag.java index c23228068..254e9485a 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3Tag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3Tag.java @@ -18,13 +18,14 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; import com.jpexs.asdec.SWFOutputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.CharacterTag; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; -public class DefineBitsJPEG3Tag extends CharacterTag { +public class DefineBitsJPEG3Tag extends CharacterTag implements AloneTag { public int characterID; public byte imageData[]; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG4Tag.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG4Tag.java index a1b49d7c4..f15200783 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG4Tag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG4Tag.java @@ -18,6 +18,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; import com.jpexs.asdec.SWFOutputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.CharacterTag; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -29,7 +30,7 @@ import java.io.OutputStream; * * @author JPEXS */ -public class DefineBitsJPEG4Tag extends CharacterTag { +public class DefineBitsJPEG4Tag extends CharacterTag implements AloneTag { public int characterID; public int deblockParam; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2Tag.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2Tag.java index 590d90488..a07247366 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2Tag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2Tag.java @@ -18,6 +18,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; import com.jpexs.asdec.SWFOutputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.CharacterTag; import com.jpexs.asdec.types.ALPHABITMAPDATA; import com.jpexs.asdec.types.ALPHACOLORMAPDATA; @@ -31,7 +32,7 @@ import java.io.IOException; import java.io.OutputStream; import java.util.zip.InflaterInputStream; -public class DefineBitsLossless2Tag extends CharacterTag { +public class DefineBitsLossless2Tag extends CharacterTag implements AloneTag { public int characterID; public int bitmapFormat; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBitsLosslessTag.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsLosslessTag.java index 2daa0fb62..83cdcd92c 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineBitsLosslessTag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsLosslessTag.java @@ -18,6 +18,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; import com.jpexs.asdec.SWFOutputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.CharacterTag; import com.jpexs.asdec.types.BITMAPDATA; import com.jpexs.asdec.types.COLORMAPDATA; @@ -31,7 +32,7 @@ import java.io.IOException; import java.io.OutputStream; import java.util.zip.InflaterInputStream; -public class DefineBitsLosslessTag extends CharacterTag { +public class DefineBitsLosslessTag extends CharacterTag implements AloneTag { public int characterID; public int bitmapFormat; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineFontTag.java b/trunk/src/com/jpexs/asdec/tags/DefineFontTag.java index d3cbe71ba..a39d51b06 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineFontTag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineFontTag.java @@ -18,6 +18,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; import com.jpexs.asdec.SWFOutputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.FontTag; import com.jpexs.asdec.types.SHAPE; import java.io.ByteArrayInputStream; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineMorphShape2Tag.java b/trunk/src/com/jpexs/asdec/tags/DefineMorphShape2Tag.java index 542ca143c..4185d08df 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineMorphShape2Tag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineMorphShape2Tag.java @@ -18,6 +18,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; import com.jpexs.asdec.SWFOutputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.BoundedTag; import com.jpexs.asdec.tags.base.CharacterTag; import com.jpexs.asdec.types.MORPHFILLSTYLEARRAY; @@ -34,7 +35,7 @@ import java.io.OutputStream; * * @author JPEXS */ -public class DefineMorphShape2Tag extends CharacterTag implements BoundedTag { +public class DefineMorphShape2Tag extends CharacterTag implements BoundedTag,AloneTag { public int characterId; public RECT startBounds; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineMorphShapeTag.java b/trunk/src/com/jpexs/asdec/tags/DefineMorphShapeTag.java index c745708be..12caa3cd7 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineMorphShapeTag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineMorphShapeTag.java @@ -18,6 +18,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; import com.jpexs.asdec.SWFOutputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.BoundedTag; import com.jpexs.asdec.tags.base.CharacterTag; import com.jpexs.asdec.types.MORPHFILLSTYLEARRAY; @@ -34,7 +35,7 @@ import java.io.OutputStream; * * @author JPEXS */ -public class DefineMorphShapeTag extends CharacterTag implements BoundedTag { +public class DefineMorphShapeTag extends CharacterTag implements BoundedTag,AloneTag { public int characterId; public RECT startBounds; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineShape2Tag.java b/trunk/src/com/jpexs/asdec/tags/DefineShape2Tag.java index 701b97fa7..496ab5156 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineShape2Tag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineShape2Tag.java @@ -17,6 +17,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.BoundedTag; import com.jpexs.asdec.tags.base.CharacterTag; import com.jpexs.asdec.types.RECT; @@ -24,7 +25,7 @@ import com.jpexs.asdec.types.SHAPEWITHSTYLE; import java.io.ByteArrayInputStream; import java.io.IOException; -public class DefineShape2Tag extends CharacterTag implements BoundedTag { +public class DefineShape2Tag extends CharacterTag implements BoundedTag,AloneTag { public int shapeId; public RECT shapeBounds; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineShape3Tag.java b/trunk/src/com/jpexs/asdec/tags/DefineShape3Tag.java index 3889d6c9a..198923649 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineShape3Tag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineShape3Tag.java @@ -17,6 +17,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.BoundedTag; import com.jpexs.asdec.tags.base.CharacterTag; import com.jpexs.asdec.types.RECT; @@ -24,7 +25,7 @@ import com.jpexs.asdec.types.SHAPEWITHSTYLE; import java.io.ByteArrayInputStream; import java.io.IOException; -public class DefineShape3Tag extends CharacterTag implements BoundedTag { +public class DefineShape3Tag extends CharacterTag implements BoundedTag,AloneTag { public int shapeId; public RECT shapeBounds; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineShape4Tag.java b/trunk/src/com/jpexs/asdec/tags/DefineShape4Tag.java index c155c66b2..46fdcfcef 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineShape4Tag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineShape4Tag.java @@ -17,6 +17,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.BoundedTag; import com.jpexs.asdec.tags.base.CharacterTag; import com.jpexs.asdec.types.RECT; @@ -24,7 +25,7 @@ import com.jpexs.asdec.types.SHAPEWITHSTYLE; import java.io.ByteArrayInputStream; import java.io.IOException; -public class DefineShape4Tag extends CharacterTag implements BoundedTag { +public class DefineShape4Tag extends CharacterTag implements BoundedTag,AloneTag { public int shapeId; public RECT shapeBounds; diff --git a/trunk/src/com/jpexs/asdec/tags/DefineShapeTag.java b/trunk/src/com/jpexs/asdec/tags/DefineShapeTag.java index 9cc3003f9..771b366ff 100644 --- a/trunk/src/com/jpexs/asdec/tags/DefineShapeTag.java +++ b/trunk/src/com/jpexs/asdec/tags/DefineShapeTag.java @@ -17,6 +17,7 @@ package com.jpexs.asdec.tags; import com.jpexs.asdec.SWFInputStream; +import com.jpexs.asdec.tags.base.AloneTag; import com.jpexs.asdec.tags.base.BoundedTag; import com.jpexs.asdec.tags.base.CharacterTag; import com.jpexs.asdec.types.RECT; @@ -24,7 +25,7 @@ import com.jpexs.asdec.types.SHAPEWITHSTYLE; import java.io.ByteArrayInputStream; import java.io.IOException; -public class DefineShapeTag extends CharacterTag implements BoundedTag { +public class DefineShapeTag extends CharacterTag implements BoundedTag,AloneTag { public int shapeId; public RECT shapeBounds; diff --git a/trunk/src/com/jpexs/asdec/tags/base/AloneTag.java b/trunk/src/com/jpexs/asdec/tags/base/AloneTag.java new file mode 100644 index 000000000..12f82741e --- /dev/null +++ b/trunk/src/com/jpexs/asdec/tags/base/AloneTag.java @@ -0,0 +1,9 @@ +package com.jpexs.asdec.tags.base; + +/** + * + * @author JPEXS + */ +public interface AloneTag { + +} diff --git a/trunk/src/com/jpexs/asdec/tags/base/FontTag.java b/trunk/src/com/jpexs/asdec/tags/base/FontTag.java index c6273e468..e8b8be1d7 100644 --- a/trunk/src/com/jpexs/asdec/tags/base/FontTag.java +++ b/trunk/src/com/jpexs/asdec/tags/base/FontTag.java @@ -6,7 +6,7 @@ import com.jpexs.asdec.types.SHAPE; * * @author JPEXS */ -public interface FontTag { +public interface FontTag extends AloneTag { public int getFontId(); public SHAPE[] getGlyphShapeTable(); }