mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-25 15:51:33 +00:00
Merge origin/master
This commit is contained in:
@@ -434,7 +434,7 @@ public class CommandLineArgumentParser {
|
||||
|
||||
if (filter == null || filter.equals("zoom")) {
|
||||
out.println(" " + (cnt++) + ") -zoom <N>");
|
||||
out.println(" ...apply zoom during export (currently for FlashPaper conversion only)");
|
||||
out.println(" ...apply zoom during export");
|
||||
}
|
||||
|
||||
if (filter == null || filter.equals("replace")) {
|
||||
@@ -2042,11 +2042,7 @@ public class CommandLineArgumentParser {
|
||||
}
|
||||
System.out.print("Page " + page + "/" + totalPages + "...");
|
||||
RECT displayRect = new RECT(ds.getTimeline().displayRect);
|
||||
//displayRect.Xmax *= zoom;
|
||||
//displayRect.Ymax *= zoom;
|
||||
Matrix m = new Matrix();
|
||||
//m.scale(zoom);
|
||||
BufferedImage img = SWF.frameToImageGet(ds.getTimeline(), 0, 0, null, 0, displayRect, m, m, null, Color.white, zoom).getBufferedImage();
|
||||
BufferedImage img = SWF.frameToImageGet(ds.getTimeline(), 0, 0, null, 0, displayRect, new Matrix(), null, Color.white, zoom).getBufferedImage();
|
||||
PageFormat pf = new PageFormat();
|
||||
pf.setOrientation(PageFormat.PORTRAIT);
|
||||
Paper p = new Paper();
|
||||
|
||||
@@ -313,7 +313,7 @@ public class FolderPreviewPanel extends JPanel {
|
||||
String key = "frame_" + fn.frame + "_" + timeline.id + "_" + zoom;
|
||||
imgSrc = swf.getFromCache(key);
|
||||
if (imgSrc == null) {
|
||||
imgSrc = SWF.frameToImageGet(timeline, fn.frame, fn.frame, null, 0, rect, new Matrix(), new Matrix(), null, null, zoom);
|
||||
imgSrc = SWF.frameToImageGet(timeline, fn.frame, fn.frame, null, 0, rect, new Matrix(), null, null, zoom);
|
||||
swf.putToCache(key, imgSrc);
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,6 @@ import java.awt.BasicStroke;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
@@ -418,8 +417,7 @@ public final class ImagePanel extends JPanel implements MediaDisplay {
|
||||
/*if (width > swf.displayRect.getWidth()) {
|
||||
scale = (double) swf.displayRect.getWidth() / (double) width;
|
||||
}*/
|
||||
Matrix m = new Matrix();
|
||||
m.translate(-rect.Xmin, -rect.Ymin);
|
||||
Matrix m = Matrix.getTranslateInstance(-rect.Xmin, -rect.Ymin);
|
||||
m.scale(scale);
|
||||
|
||||
Point p = lastMouseEvent == null ? null : lastMouseEvent.getPoint();
|
||||
@@ -491,7 +489,7 @@ public final class ImagePanel extends JPanel implements MediaDisplay {
|
||||
ButtonTag button = iconPanel.mouseOverButton;
|
||||
if (button != null) {
|
||||
DefineButtonSoundTag sounds = button.getSounds();
|
||||
if (sounds != null && sounds.buttonSoundChar2 != 0) { //OverUpToOverDown
|
||||
if (sounds != null && sounds.buttonSoundChar2 != 0) { // OverUpToOverDown
|
||||
playSound((SoundTag) swf.getCharacter(sounds.buttonSoundChar2), sounds.buttonSoundInfo2, timer);
|
||||
}
|
||||
}
|
||||
@@ -507,7 +505,7 @@ public final class ImagePanel extends JPanel implements MediaDisplay {
|
||||
ButtonTag button = iconPanel.mouseOverButton;
|
||||
if (button != null) {
|
||||
DefineButtonSoundTag sounds = button.getSounds();
|
||||
if (sounds != null && sounds.buttonSoundChar3 != 0) { //OverDownToOverUp
|
||||
if (sounds != null && sounds.buttonSoundChar3 != 0) { // OverDownToOverUp
|
||||
playSound((SoundTag) swf.getCharacter(sounds.buttonSoundChar3), sounds.buttonSoundInfo3, timer);
|
||||
}
|
||||
}
|
||||
@@ -736,8 +734,7 @@ public final class ImagePanel extends JPanel implements MediaDisplay {
|
||||
SerializableImage image = new SerializableImage((int) (width / SWF.unitDivisor) + 1,
|
||||
(int) (height / SWF.unitDivisor) + 1, SerializableImage.TYPE_INT_ARGB);
|
||||
image.fillTransparent();
|
||||
Matrix m = new Matrix();
|
||||
m.translate(-rect.Xmin * zoomDouble, -rect.Ymin * zoomDouble);
|
||||
Matrix m = Matrix.getTranslateInstance(-rect.Xmin * zoomDouble, -rect.Ymin * zoomDouble);
|
||||
m.scale(zoomDouble);
|
||||
textTag.toImage(0, 0, 0, new RenderContext(), image, false, m, m, m, new ConstantColorColorTransform(0xFFC0C0C0));
|
||||
|
||||
@@ -864,7 +861,7 @@ public final class ImagePanel extends JPanel implements MediaDisplay {
|
||||
Matrix m = new Matrix();
|
||||
m.translate(-rect.Xmin * zoom, -rect.Ymin * zoom);
|
||||
m.scale(zoom);
|
||||
timeline.toImage(frame, time, renderContext, image, false, m, new Matrix(), m, null);
|
||||
timeline.toImage(frame, time, renderContext, image, false, m, m, m, null);
|
||||
|
||||
Graphics2D gg = (Graphics2D) image.getGraphics();
|
||||
gg.setStroke(new BasicStroke(3));
|
||||
|
||||
@@ -288,7 +288,7 @@ public class LoadFromMemoryFrame extends AppFrame {
|
||||
tableRes.addKeyListener(new KeyAdapter() {
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
if (e.getKeyCode() == 10) { //Enter pressed
|
||||
if (e.getKeyCode() == KeyEvent.VK_ENTER) { //Enter pressed
|
||||
openSwf();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,8 +228,7 @@ public class Main {
|
||||
try {
|
||||
proc = Runtime.getRuntime().exec(new String[]{exePath, ffile});
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(MainFrameMenu.class.getName()).log(Level.SEVERE, null, ex);
|
||||
|
||||
logger.log(Level.SEVERE, null, ex);
|
||||
return null;
|
||||
}
|
||||
boolean isDebug;
|
||||
@@ -344,7 +343,7 @@ public class Main {
|
||||
try (FileInputStream fis = new FileInputStream(fTempFile)) {
|
||||
instrSWF = new SWF(fis, false, false);
|
||||
} catch (InterruptedException ex) {
|
||||
Logger.getLogger(MainFrameMenu.class.getName()).log(Level.SEVERE, null, ex);
|
||||
logger.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
if (instrSWF != null) {
|
||||
String swfFileName = fTempFile.getAbsolutePath();
|
||||
@@ -373,7 +372,7 @@ public class Main {
|
||||
try (FileInputStream fis = new FileInputStream(toPrepareFile)) {
|
||||
instrSWF = new SWF(fis, toPrepareFile.getAbsolutePath(), origFile.getName(), false);
|
||||
} catch (InterruptedException ex) {
|
||||
Logger.getLogger(MainFrameMenu.class.getName()).log(Level.SEVERE, null, ex);
|
||||
logger.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
if (instrSWF != null) {
|
||||
for (Tag t : instrSWF.getLocalTags()) {
|
||||
@@ -1608,7 +1607,7 @@ public class Main {
|
||||
Helper.writeFile(tfile, data);
|
||||
openFile(new SWFSourceInfo(null, tfile, title));
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, "Cannot create tempfile");
|
||||
logger.log(Level.SEVERE, "Cannot create tempfile");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1654,7 +1653,7 @@ public class Main {
|
||||
});
|
||||
flashDebugger.addConnectionListener(debugHandler);
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, "eeex", ex);
|
||||
logger.log(Level.SEVERE, "eeex", ex);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -675,6 +675,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
}
|
||||
});
|
||||
searchPanel.add(closeSearchButton, BorderLayout.EAST);
|
||||
searchPanel.setVisible(false);
|
||||
treePanel = new JPanel(new CardLayout());
|
||||
treePanel.add(createResourcesViewCard(), RESOURCES_VIEW);
|
||||
treePanel.add(createDumpViewCard(), DUMP_VIEW);
|
||||
@@ -2878,23 +2879,6 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
@Override
|
||||
public void valueChanged(TreeSelectionEvent e) {
|
||||
Object source = e.getSource();
|
||||
if (source == dumpTree) {
|
||||
reload(false);
|
||||
Object sel = e.getPath().getLastPathComponent();
|
||||
if (sel instanceof DumpInfo) {
|
||||
DumpInfo di = (DumpInfo) sel;
|
||||
Tag t = di.getTag();
|
||||
if (t != null) {
|
||||
showPreview(t, dumpPreviewPanel);
|
||||
} else {
|
||||
showPreview(null, dumpPreviewPanel);
|
||||
}
|
||||
} else {
|
||||
showPreview(null, dumpPreviewPanel);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
TreeItem treeItem = (TreeItem) e.getPath().getLastPathComponent();
|
||||
|
||||
if (!(treeItem instanceof SWFList)) {
|
||||
@@ -2914,6 +2898,17 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
}
|
||||
|
||||
reload(false);
|
||||
|
||||
if (source == dumpTree) {
|
||||
Object sel = e.getPath().getLastPathComponent();
|
||||
Tag t = null;
|
||||
if (sel instanceof DumpInfo) {
|
||||
DumpInfo di = (DumpInfo) sel;
|
||||
t = di.getTag();
|
||||
}
|
||||
|
||||
showPreview(t, dumpPreviewPanel);
|
||||
}
|
||||
}
|
||||
|
||||
public void unloadFlashPlayer() {
|
||||
@@ -3047,6 +3042,8 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
}
|
||||
if (item instanceof Timelined) {
|
||||
timelineViewPanel.setTimelined((Timelined) item);
|
||||
} else if (item instanceof Frame) {
|
||||
timelineViewPanel.setTimelined(((Frame) item).timeline.timelined);
|
||||
} else {
|
||||
timelineViewPanel.setTimelined(swf);
|
||||
}
|
||||
@@ -3171,13 +3168,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
} else if (treeItem instanceof Frame && internalViewer) {
|
||||
Frame fn = (Frame) treeItem;
|
||||
SWF swf = fn.getSwf();
|
||||
Timelined timelined = swf;
|
||||
if (fn.timeline.timelined instanceof DefineSpriteTag) {
|
||||
DefineSpriteTag parentSprite = (DefineSpriteTag) fn.timeline.timelined;
|
||||
timelined = parentSprite;
|
||||
}
|
||||
|
||||
previewPanel.showImagePanel(timelined, swf, fn.frame);
|
||||
previewPanel.showImagePanel(fn.timeline.timelined, swf, fn.frame);
|
||||
} else if ((treeItem instanceof SoundTag)) { //&& isInternalFlashViewerSelected() && (Arrays.asList("mp3", "wav").contains(((SoundTag) tagObj).getExportFormat())))) {
|
||||
previewPanel.showImagePanel(new SerializableImage(View.loadImage("sound32")));
|
||||
previewPanel.setImageReplaceButtonVisible(((Tag) treeItem).isReadOnly() && (treeItem instanceof DefineSoundTag), false);
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.jpexs.decompiler.flash.gui.editor.LineMarkedEditorPane;
|
||||
import com.jpexs.decompiler.flash.helpers.HighlightedTextWriter;
|
||||
import com.jpexs.decompiler.flash.helpers.hilight.HighlightSpecialType;
|
||||
import com.jpexs.decompiler.flash.helpers.hilight.Highlighting;
|
||||
import com.jpexs.decompiler.flash.tags.Tag;
|
||||
import java.awt.BorderLayout;
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
@@ -129,6 +130,8 @@ public class SlotConstTraitDetailPanel extends JPanel implements TraitDetail {
|
||||
Logger.getLogger(SlotConstTraitDetailPanel.class.getName()).log(Level.SEVERE, null, ex);
|
||||
return false;
|
||||
}
|
||||
|
||||
((Tag) abc.parentTag).setModified(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -347,7 +347,7 @@ config.description.lastSessionSelection = Contient la s\u00e9lection lors de la
|
||||
config.name.loopMedia = Rejouer les sons et les sprites
|
||||
config.description.loopMedia = Rejoue automatiquement les sons et les sprites
|
||||
|
||||
config.name.gui.timeLineSplitPane.dividerLocationPercent = (Internal) Timeline Splitter location
|
||||
config.name.gui.timeLineSplitPane.dividerLocationPercent = (Internal) Position du \u00e9parateur de la fen\u00eatre du chronogramme
|
||||
config.description.gui.timeLineSplitPane.dividerLocationPercent =
|
||||
|
||||
config.name.cacheImages = Images en m\u00e9moire cache
|
||||
|
||||
@@ -219,9 +219,9 @@ config.name.formatting.indent.useTabs = Indentare con tab
|
||||
config.description.formatting.indent.useTabs = Utilizzare tab invece degli spazi per l'indentazione
|
||||
|
||||
config.name.beginBlockOnNewLine = Parentesi graffa su riga successiva
|
||||
config.description.beginBlockOnNewLine = Iniziare un blocco con parentesi { } dopo un a-capo
|
||||
config.description.beginBlockOnNewLine = Iniziare un blocco di parentesi graffe dopo un a-capo
|
||||
|
||||
config.name.check.updates.delay = Intervallo tra verifiche aggiornamenti
|
||||
config.name.check.updates.delay = Intervallo tra controllo aggiornamenti
|
||||
config.description.check.updates.delay = Tempo minimo tra controlli automatici per aggiornamenti all'avvio
|
||||
|
||||
config.name.check.updates.stable = Cercare versioni stabili
|
||||
@@ -318,7 +318,7 @@ config.name.editorMode = Modalit\u00e0 editor
|
||||
config.description.editorMode = Rende modificabili le aree di testo in automatico alla selezione di un nodo text o script
|
||||
|
||||
config.name.autoSaveTagModifications = Salvataggio automatico modifiche ai tag
|
||||
config.description.autoSaveTagModifications = Salvare le modifiche quando si seleziona un nuovo tag nella struttura
|
||||
config.description.autoSaveTagModifications = Salva le modifiche quando si seleziona un nuovo tag nella struttura
|
||||
|
||||
config.name.saveSessionOnExit = Salva sessione in uscita
|
||||
config.description.saveSessionOnExit = Salva la sessione corrente e la riapre dopo il riavvio di FFDec (funziona solo con file reali)
|
||||
@@ -326,10 +326,10 @@ config.description.saveSessionOnExit = Salva la sessione corrente e la riapre do
|
||||
config.name.showDebugMenu = Mostra il menu di debug
|
||||
config.description.showDebugMenu = Mostra il menu di debug
|
||||
|
||||
config.name.allowOnlyOneInstance = Permettere una sola istanza FFDec (sotto Windows)
|
||||
config.description.allowOnlyOneInstance = FFDec pu\u00f2 essere eseguito solo una volta, tutti i file aperti verranno aggiunti alla stessa finestra.\nFunziona solo sotto sistema operativo Windows
|
||||
config.name.allowOnlyOneInstance = Permetti una sola istanza di FFDec (sotto Windows)
|
||||
config.description.allowOnlyOneInstance = FFDec pu\u00f2 essere avviato solo una volta, tutti i file aperti verranno aggiunti alla stessa finestra.\nFunziona solo sotto sistema operativo Windows
|
||||
|
||||
config.name.scriptExportSingleFile = Esportare script verso un singolo file
|
||||
config.name.scriptExportSingleFile = Esporta script verso un unico file
|
||||
config.description.scriptExportSingleFile = Esportazione script verso un unico file invece che file multipli
|
||||
|
||||
config.name.setFFDecVersionInExportedFont = Imposta il numero di versione di FFDec nel font esportato
|
||||
@@ -359,8 +359,8 @@ config.description.swfSpecificConfigs = Contiene le configurazioni specifiche ag
|
||||
config.name.exeExportMode = Modalit\u00e0 di esportazione EXE
|
||||
config.description.exeExportMode = Modalit\u00e0 di esportazione EXE
|
||||
|
||||
config.name.ignoreCLikePackages = Ignora FlashCC / Alchimia o package simili
|
||||
config.description.ignoreCLikePackages = I package FlashCC / Alchimia non possono solitamente essere decompilati correttamente.\r\n\u00c8 possibile disattivarli per velocizzare la decompilazione di altri package.
|
||||
config.name.ignoreCLikePackages = Ignora FlashCC / Alchemy o package simili
|
||||
config.description.ignoreCLikePackages = I package FlashCC / Alchemy non possono solitamente essere decompilati correttamente.\r\n\u00c8 possibile disattivarli per velocizzare la decompilazione di altri package.
|
||||
|
||||
config.name.overwriteExistingFiles = Sovrascrivere i file esistenti
|
||||
config.description.overwriteExistingFiles = Sovrascrivere i file esistenti durante l'esportazione. Attualmente solo per script AS2/3
|
||||
@@ -378,33 +378,33 @@ config.name.lastSessionFileTitles = Titoli file ultima sessione
|
||||
config.description.lastSessionFileTitles = Contiene i titoli dei file aperti nell'ultima sessione (ad es. quelli caricati da URL ecc.)
|
||||
|
||||
config.group.name.paths = Percorsi
|
||||
config.group.description.paths = Ubicazione dei file necessari
|
||||
config.group.tip.paths = \u00c8 possibile ottenere questi file dal sito Adobe
|
||||
config.group.description.paths = Ubicazione dei file richiesti
|
||||
config.group.tip.paths = \ufffd possibile ottenere questi file dal sito Adobe
|
||||
config.group.link.paths = https://www.adobe.com/support/flashplayer/debug_downloads.html
|
||||
config.group.linkText.paths = [apri]
|
||||
|
||||
config.name.playerLocation = 1) Percorso Flash Player
|
||||
config.description.playerLocation = Posizione eseguibile Flash Player. Utilizzato per l'azione Esegui.
|
||||
|
||||
config.name.playerDebugLocation = 2) Percorso Flash Player per debug
|
||||
config.name.playerDebugLocation = 2) Percorso Flash Player per il debug
|
||||
config.description.playerDebugLocation = Posizione eseguibile Flash Player per il debug. Utilizzato per l'azione Debug.
|
||||
|
||||
config.name.playerLibLocation = 3) Percorso PlayerGlobal (.swc)
|
||||
config.description.playerLibLocation = Posizione della libreria Flash Player playerglobal.swc. Utilizzato perlopi\u00f9 per compilare AS3.
|
||||
config.description.playerLibLocation = Posizione della libreria playerglobal.swc utilizzata perlopi\u00f9 per compilare AS3.
|
||||
|
||||
config.name.debugHalt = Blocca esecuzione all'avvio del debug
|
||||
config.name.debugHalt = Pausa esecuzione all'avvio del debug
|
||||
config.description.debugHalt = Pausa SWF all'avvio del debug.
|
||||
|
||||
config.name.gui.avm2.splitPane.vars.dividerLocationPercent = (Interno) Posizione splitter del menu Debug
|
||||
config.name.gui.avm2.splitPane.vars.dividerLocationPercent = (Interno) Posizione divisorio del menu Debug
|
||||
config.description.gui.avm2.splitPane.vars.dividerLocationPercent =
|
||||
|
||||
tip = Suggerimento:\u0020
|
||||
|
||||
config.name.gui.action.splitPane.vars.dividerLocationPercent = (Interno) Posizione splitter del menu Debug AS1/2
|
||||
config.name.gui.action.splitPane.vars.dividerLocationPercent = (Interno) Posizione divisorio del menu Debug AS1/2
|
||||
config.description.gui.action.splitPane.vars.dividerLocationPercent =
|
||||
|
||||
config.name.setMovieDelay = Ritardo in ms prima di cambiare il file SWF nel riproduttore esterno
|
||||
config.description.setMovieDelay = Si sconsigliano valori sotto i 1000ms
|
||||
config.description.setMovieDelay = Si sconsigliano valori inferiori a 1000ms
|
||||
|
||||
config.name.warning.svgImport = Avvisa all'importazione SVG
|
||||
config.description.warning.svgImport =
|
||||
@@ -422,8 +422,10 @@ config.name.displayDupInstructions = Mostra istruzioni \u00a7\u00a7dup
|
||||
config.description.displayDupInstructions = Visualizza istruzioni \u00a7\u00a7dup nel codice. In loro assenza il codice pu\u00f2 essere facilmente compilato ma i dup con effetti collaterali potrebbero essere eseguiti due volte.
|
||||
|
||||
config.name.useRegExprLiteral = Decompila RegExp nella forma /pattern/mod.
|
||||
config.description.useRegExprLiteral = Usa la sintassi /pattern/mod nella decompilazione di espressioni regolari. Altrimenti, utilizzare new RegExp(\"pat\",\"mod\")
|
||||
config.description.useRegExprLiteral = Usa la sintassi /pattern/mod nella decompilazione di espressioni regolari. Altrimenti, utilizza new RegExp(\"pat\",\"mod\")
|
||||
|
||||
config.name.handleSkinPartsAutomatically = Gestisce metadati [SkinPart] in automatico
|
||||
config.description.handleSkinPartsAutomatically = Decompila e modifica direttamente i metadati [SkinPart] in automatico. Se disattivato, l'attributo _skinParts ed il suo metodo getter sono visibili e modificabili direttamente.
|
||||
config.description.handleSkinPartsAutomatically = Decompila e modifica direttamente i metadati [SkinPart] in automatico. Se disattivato, l'attributo _skinParts ed il suo metodo getter sono visibili e modificabili dall'utente.
|
||||
|
||||
config.name.resetLetterSpacingOnTextImport = Ripristina spaziatura lettere all'importazione di testo
|
||||
config.description.resetLetterSpacingOnTextImport = Utile per i font cirillici, essendo piu ampi
|
||||
|
||||
@@ -29,3 +29,4 @@ column.version = Version
|
||||
column.fileSize = Taille du fichier
|
||||
column.pid = PID
|
||||
column.processName = Nom du processus
|
||||
column.address = Addresse
|
||||
|
||||
@@ -713,3 +713,6 @@ menu.settings.simplifyExpressions = Simplification d'expressions
|
||||
#after 8.0.1
|
||||
menu.recentFiles.empty = La liste des fichiers r\u00e9cents est vide
|
||||
message.warning.outOfMemory32BitJre = M\u00e9moire insuffisante. Vous utilisez une version 32 bits de Java sur un syst\u00e8me 64 bits. Veuillez utiliser Java 64 bits.
|
||||
|
||||
menu.file.reloadAll = Recharger tout
|
||||
message.confirm.reloadAll = Cette action annule tous les changements qui n'ont pas \u00e9t\u00e9 enregistr\u00e9s dans les fichiers SWF et recharge tous les fichiers dans l'application.\nContinuer ?
|
||||
|
||||
@@ -334,10 +334,12 @@ message.confirm.reload = Questa azione annulla tutte le modifiche non salvate e
|
||||
|
||||
dialog.selectbkcolor.title = Scelta colore di sfondo
|
||||
|
||||
|
||||
error.font.nocharacter = Il font sorgente selezionato non contiene il carattere "%char%".
|
||||
|
||||
warning.initializers = I campi statici e le costanti sono spesso valorizzati negli initializer.\nLa modifica del valore qui spesso non \u00e8 sufficiente!
|
||||
|
||||
|
||||
#after version 1.7.0u1:
|
||||
|
||||
menu.tools.searchMemory = Cerca SWF in memoria
|
||||
@@ -349,7 +351,7 @@ ColorChooser.resetText = Risetta
|
||||
ColorChooser.previewText = Anteprima
|
||||
ColorChooser.swatchesNameText = Palette
|
||||
ColorChooser.swatchesRecentText = Recente:
|
||||
ColorChooser.sampleText = Testo Campione Testo Campione
|
||||
ColorChooser.sampleText=Testo Campione Testo Campione
|
||||
|
||||
#after version 1.7.1:
|
||||
|
||||
@@ -448,8 +450,8 @@ button.next = Successivo
|
||||
|
||||
#after version 2.1.0
|
||||
message.action.playerglobal.title = Libreria PlayerGlobal.swc mancante
|
||||
message.action.playerglobal.needed = Per effetuare modifiche immediate AS3 la libreria "PlayerGlobal.swc" deve essere scaricato dal sito di Adobe.\r\n%adobehomepage%\r\nPremere OK per visitare la pagina di download.
|
||||
message.action.playerglobal.place = Scarica la libreria PlayerGlobal(.swc) e posizionarla nella cartella \r\n%libpath%\r\nScegliere OK per continuare.
|
||||
message.action.playerglobal.needed = Per effettuare modifiche immediate in AS3 la libreria "PlayerGlobal.swc" deve essere scaricato dal sito di Adobe.\r\n%adobehomepage%\r\nPremere OK per visitare la pagina di download.
|
||||
message.action.playerglobal.place = Scarica la libreria PlayerGlobal(.swc) e posizionala nella cartella \r\n%libpath%\r\nScegliere OK per continuare.
|
||||
|
||||
message.confirm.experimental.function = Questa funzione \u00e8 SPERIMENTALE. Ci\u00f2 significa che non \u00e8 garantito il risultato ed il file SWF pu\u00f2 essere non funzionale dopo il salvataggio.
|
||||
message.confirm.donotshowagain = Non mostrare pi\u00f9 il messaggio
|
||||
@@ -631,9 +633,9 @@ abc.traitslist.scriptinitializer = Inizializzatore script
|
||||
menu.settings.autoOpenLoadedSWFs = Apri SWF caricati durante la riproduzione
|
||||
|
||||
#after version 6.1.1
|
||||
menu.file.start = Inizia
|
||||
menu.file.start = Avvio
|
||||
menu.file.start.run = Esegui
|
||||
menu.file.start.stop = Ferma
|
||||
menu.file.start.stop = Arresta
|
||||
menu.file.start.debug = Debug
|
||||
menu.debugging = Debug
|
||||
menu.debugging.debug = Debug
|
||||
@@ -641,14 +643,15 @@ menu.debugging.debug.stop = Ferma
|
||||
menu.debugging.debug.pause = Pausa
|
||||
menu.debugging.debug.stepOver = Passo successivo
|
||||
menu.debugging.debug.stepInto = Entra nel metodo
|
||||
menu.debugging.debug.stepOut = Esci dal metodo
|
||||
menu.debugging.debug.stepOut = Risali dal metodo
|
||||
menu.debugging.debug.continue = Continua
|
||||
menu.debugging.debug.stack = Stack...
|
||||
menu.debugging.debug.watch = Nuovo osservatore...
|
||||
|
||||
message.playerpath.notset = Proiettore Flash Player non trovato. Si prega di configurare il suo percorso in Impostazioni avanzate / Percorsi (1).
|
||||
message.playerpath.debug.notset = Proiettore Flash Player debugger di contenuto non trovato. Si prega di configurare il suo percorso in Impostazioni avanzate / Percorsi (2).
|
||||
message.playerpath.lib.notset = PlayerGlobal (.swc) non trovato. Si prega di configurare il suo percorso in Impostazioni avanzate / Percorsi (3).
|
||||
|
||||
message.playerpath.notset = Proiettore Flash Player non trovato. Si prega di configurarne il percorso in Impostazioni avanzate / Percorsi (1).
|
||||
message.playerpath.debug.notset = Proiettore Flash Player debugger di contenuto non trovato. Si prega di configurarne il percorso in Impostazioni avanzate / Percorsi (2).
|
||||
message.playerpath.lib.notset = PlayerGlobal (.swc) non trovato. Si prega di configurarne il percorso in Impostazioni avanzate / Percorsi (3).
|
||||
|
||||
debugpanel.header = Debug
|
||||
|
||||
@@ -699,8 +702,14 @@ menu.file.start.debugpcode = Debug P-code
|
||||
# after 7.1.2
|
||||
button.replaceNoFill = Sostituisci - Aggiorna limiti...
|
||||
message.warning.svgImportExperimental = Non tutte le funzioni SVG sono supportate. Controllare il registro dopo l'importazione.
|
||||
message.imported.swf = Il file SWF utilizza asset da un file SWF importato:\n%url%\nVuoi caricare gli asset da quell'indirizzo?
|
||||
message.imported.swf = Il file SWF utilizza asset da un file SWF importato:\n%url%\nCaricare gli asset da quell'indirizzo?
|
||||
message.imported.swf.manually = Impossibile caricare SWF importato\n%url%\nFile o URL non esistente.\nSelezionare un file locale?
|
||||
|
||||
message.warning.hexViewNotUpToDate = Hex View non aggiornato. Si prega di salvare e ricaricare il file per aggiornare la visuale esadecimale.
|
||||
message.warning.hexViewNotUpToDate = Hex View non aggiornato. Si prega di salvare e ricaricare il file per aggiornare la visuale.
|
||||
message.font.replace.updateTexts = Sono stati sostituiti alcuni caratteri. Vuoi aggiornare i testi esistenti?
|
||||
|
||||
menu.settings.simplifyExpressions = Semplifica espressioni
|
||||
|
||||
#after 8.0.1
|
||||
menu.recentFiles.empty = Lista file recenti \u00e8 vuota
|
||||
message.warning.outOfMemeory32BitJre = Errore di memoria esaurita. Stai eseguendo Java a 32bit su sistema operativo a 64bit. Prova con Java a 64bit.
|
||||
|
||||
@@ -117,6 +117,8 @@ public class PlayerControls extends JPanel implements MediaDisplayListener {
|
||||
|
||||
private static Font notUnderlinedFont = null;
|
||||
|
||||
private final int zeroCharacterWidth;
|
||||
|
||||
static {
|
||||
Font font = new JLabel().getFont();
|
||||
notUnderlinedFont = font;
|
||||
@@ -189,9 +191,7 @@ public class PlayerControls extends JPanel implements MediaDisplayListener {
|
||||
|
||||
frameLabel.setVisible(false);
|
||||
|
||||
Dimension min = new Dimension(frameLabel.getFontMetrics(notUnderlinedFont).stringWidth("000"), frameLabel.getPreferredSize().height);
|
||||
frameLabel.setMinimumSize(min);
|
||||
frameLabel.setPreferredSize(min);
|
||||
zeroCharacterWidth = frameLabel.getFontMetrics(notUnderlinedFont).stringWidth("0");
|
||||
|
||||
frameLabel.addMouseListener(new MouseAdapter() {
|
||||
|
||||
@@ -333,6 +333,12 @@ public class PlayerControls extends JPanel implements MediaDisplayListener {
|
||||
|
||||
View.execInEventDispatchLater(() -> {
|
||||
updateZoom();
|
||||
int totalFrames = display.getTotalFrames();
|
||||
int currentFrame = display.getCurrentFrame();
|
||||
if (currentFrame >= totalFrames) {
|
||||
currentFrame = totalFrames - 1;
|
||||
}
|
||||
float frameRate = display.getFrameRate();
|
||||
Zoom zoom = display.getZoom();
|
||||
zoomFitButton.setVisible(zoom != null);
|
||||
percentLabel.setVisible(zoom != null);
|
||||
@@ -342,13 +348,14 @@ public class PlayerControls extends JPanel implements MediaDisplayListener {
|
||||
graphicControls.setVisible(screenAvailable);
|
||||
totalFrameLabel.setVisible(screenAvailable);
|
||||
frameLabel.setVisible(screenAvailable);
|
||||
frameControls.setVisible(screenAvailable);
|
||||
int totalFrames = display.getTotalFrames();
|
||||
int currentFrame = display.getCurrentFrame();
|
||||
if (currentFrame >= totalFrames) {
|
||||
currentFrame = totalFrames - 1;
|
||||
if (screenAvailable) {
|
||||
int charCount = Math.max(Integer.toString(totalFrames).length(), 3);
|
||||
Dimension min = new Dimension(zeroCharacterWidth * charCount, frameLabel.getPreferredSize().height);
|
||||
frameLabel.setMinimumSize(min);
|
||||
frameLabel.setPreferredSize(min);
|
||||
}
|
||||
float frameRate = display.getFrameRate();
|
||||
|
||||
frameControls.setVisible(screenAvailable);
|
||||
if (totalFrames == 0) {
|
||||
progress.setIndeterminate(true);
|
||||
} else {
|
||||
@@ -357,8 +364,8 @@ public class PlayerControls extends JPanel implements MediaDisplayListener {
|
||||
progress.setValue(currentFrame);
|
||||
progress.setIndeterminate(false);
|
||||
}
|
||||
frameLabel.setText(("" + (currentFrame + 1)));
|
||||
totalFrameLabel.setText("" + totalFrames);
|
||||
frameLabel.setText(Integer.toString(currentFrame + 1));
|
||||
totalFrameLabel.setText(Integer.toString(totalFrames));
|
||||
if (frameRate != 0) {
|
||||
timeLabel.setText("(" + formatMs((int) (currentFrame * 1000.0 / frameRate)) + ")");
|
||||
totalTimeLabel.setText("(" + formatMs((int) (totalFrames * 1000.0 / frameRate)) + ")");
|
||||
|
||||
Reference in New Issue
Block a user