mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-25 13:00:47 +00:00
Issue #533 Object under cursor fix
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user