Issue #533 Object under cursor fix

This commit is contained in:
Jindra Pet��k
2014-03-12 19:24:57 +01:00
parent 502459e912
commit a8ac2a9f68
3 changed files with 25 additions and 1 deletions
@@ -117,6 +117,7 @@ import com.jpexs.decompiler.flash.types.MATRIX;
import com.jpexs.decompiler.flash.types.RECT;
import com.jpexs.decompiler.flash.types.filters.BlendComposite;
import com.jpexs.decompiler.flash.types.filters.FILTER;
import com.jpexs.decompiler.flash.types.shaperecords.SHAPERECORD;
import com.jpexs.decompiler.flash.types.sound.SoundFormat;
import com.jpexs.decompiler.flash.xfl.FLAVersion;
import com.jpexs.decompiler.flash.xfl.XFLConverter;
@@ -132,7 +133,9 @@ import com.jpexs.helpers.ProgressListener;
import com.jpexs.helpers.SerializableImage;
import com.jpexs.helpers.utf8.Utf8Helper;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
@@ -2347,6 +2350,14 @@ public final class SWF implements TreeItem, Timelined {
drawMatrix.translate(rect.xMin, rect.yMin);
drawable.toImage(dframe, layer.ratio, stateUnderCursor, mouseButton, img, m, clrTrans);
//if(stateUnderCursor == layer){
/* if(true){
Graphics2D gg = (Graphics2D)img.getGraphics();
gg.setStroke(new BasicStroke(3));
gg.setPaint(Color.red);
gg.setTransform(AffineTransform.getTranslateInstance(0, 0));
gg.draw(SHAPERECORD.twipToPixelShape(drawable.getOutline(frame, layer.ratio, stateUnderCursor, mouseButton, m)));
}*/
} else if (drawable instanceof FontTag) {
// only DefineFont tags
FontTag fontTag = (FontTag) drawable;
@@ -2459,6 +2470,9 @@ public final class SWF implements TreeItem, Timelined {
g.setComposite(AlphaComposite.Dst);
}
}
g.setTransform(AffineTransform.getScaleInstance(1, 1));
}
@@ -30,8 +30,10 @@ import com.jpexs.decompiler.flash.timeline.Timeline;
import com.jpexs.decompiler.flash.timeline.Timelined;
import com.jpexs.decompiler.flash.types.ColorTransform;
import com.jpexs.decompiler.flash.types.RECT;
import com.jpexs.decompiler.flash.types.shaperecords.SHAPERECORD;
import com.jpexs.helpers.SerializableImage;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
@@ -48,6 +50,7 @@ import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseMotionListener;
import java.awt.geom.AffineTransform;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
@@ -369,6 +372,13 @@ public final class ImagePanel extends JPanel implements ActionListener, MediaDis
m.translate(-rect.Xmin, -rect.Ymin);
m.scale(scale);
drawable.getTimeline().toImage(frame, frame, stateUnderCursor, mouseButton, image, m, new ColorTransform());
/* Graphics2D gg = (Graphics2D)image.getGraphics();
gg.setStroke(new BasicStroke(3));
gg.setPaint(Color.green);
gg.setTransform(AffineTransform.getTranslateInstance(0, 0));
gg.draw(SHAPERECORD.twipToPixelShape(drawable.getTimeline().getOutline(frame, frame, stateUnderCursor, mouseButton, m)));
*/
img = image;
} else if (drawable instanceof FontTag) {
// only DefineFont tags
@@ -89,7 +89,7 @@ public class Frame {
}
CharacterTag c = timeline.swf.characters.get(ds.characterId);
if (c instanceof DrawableTag) {
Matrix m = new Matrix(ds.matrix).concatenate(transformation);
Matrix m = new Matrix(ds.matrix).preConcatenate(transformation);
int frame = ds.time % ((DrawableTag) c).getNumFrames();
if (c instanceof ButtonTag) {
frame = ButtonTag.FRAME_HITTEST;