mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-02 11:54:36 +00:00
Fixed: #2309 XML export/import - Decimal support
This commit is contained in:
@@ -45,6 +45,7 @@ import java.util.logging.Logger;
|
||||
import javax.xml.stream.XMLOutputFactory;
|
||||
import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.stream.XMLStreamWriter;
|
||||
import macromedia.asc.util.Decimal128;
|
||||
|
||||
/**
|
||||
* Exports SWF to XML.
|
||||
@@ -178,6 +179,16 @@ public class SwfXmlExporter {
|
||||
Object value = obj;
|
||||
String stringValue = Helper.escapeXmlExportString(value.toString());
|
||||
|
||||
if (isListItem) {
|
||||
writer.writeStartElement(name);
|
||||
writer.writeCharacters(stringValue);
|
||||
writer.writeEndElement();
|
||||
} else {
|
||||
writer.writeAttribute(name, stringValue);
|
||||
}
|
||||
} else if (cls == Decimal128.class) {
|
||||
Decimal128 value = (Decimal128) obj;
|
||||
String stringValue = value.toActionScriptString();
|
||||
if (isListItem) {
|
||||
writer.writeStartElement(name);
|
||||
writer.writeCharacters(stringValue);
|
||||
|
||||
@@ -180,7 +180,7 @@ public class SwfXmlImporter {
|
||||
CurvedEdgeRecord.class, EndShapeRecord.class, StraightEdgeRecord.class, StyleChangeRecord.class,
|
||||
BEVELFILTER.class, BLURFILTER.class, COLORMATRIXFILTER.class, CONVOLUTIONFILTER.class,
|
||||
DROPSHADOWFILTER.class, GLOWFILTER.class, GRADIENTBEVELFILTER.class, GRADIENTGLOWFILTER.class,
|
||||
AVM2ConstantPool.class, Decimal128.class, Namespace.class, NamespaceSet.class, Multiname.class, MethodInfo.class, MetadataInfo.class,
|
||||
AVM2ConstantPool.class, Namespace.class, NamespaceSet.class, Multiname.class, MethodInfo.class, MetadataInfo.class,
|
||||
ValueKind.class, InstanceInfo.class, Traits.class, TraitClass.class, TraitFunction.class,
|
||||
TraitMethodGetterSetter.class, TraitSlotConst.class, ClassInfo.class, ScriptInfo.class, MethodBody.class,
|
||||
ABCException.class, ABCVersion.class, Amf3Value.class,
|
||||
@@ -195,7 +195,7 @@ public class SwfXmlImporter {
|
||||
}
|
||||
objects.put(cls2.getSimpleName(), cls2);
|
||||
}
|
||||
|
||||
|
||||
swfObjects = objects;
|
||||
|
||||
Map<String, Class> objectsParam = new HashMap<>();
|
||||
@@ -526,6 +526,12 @@ public class SwfXmlImporter {
|
||||
return Float.parseFloat(stringValue);
|
||||
} else if (cls == Double.class || cls == double.class) {
|
||||
return Double.parseDouble(stringValue);
|
||||
} else if (cls == Decimal128.class) {
|
||||
String sdec = stringValue;
|
||||
if (sdec.endsWith("m")) {
|
||||
sdec = sdec.substring(0, sdec.length() - 1);
|
||||
}
|
||||
return new Decimal128(sdec);
|
||||
} else if (cls == Boolean.class || cls == boolean.class) {
|
||||
return Boolean.parseBoolean(stringValue);
|
||||
} else if (cls == Character.class || cls == char.class) {
|
||||
|
||||
Reference in New Issue
Block a user