📄 fsplaceobject2.java
字号:
*/
public void setLayer(int aLayer)
{
layer = aLayer;
}
/** Sets the identifier of the object.
@param anIdentifier the identifier of a new object to be displayed.
*/
public void setIdentifier(int anIdentifier)
{
identifier = anIdentifier;
}
/** Sets the coordinate transform that defines the position where the object will be displayed. The argument may be null if the location of the object is not being changed.
@param aTransform an FSCoordTransform object that will be applied to the object displayed.
*/
public void setTransform(FSCoordTransform aTransform)
{
transform = aTransform;
}
/** Sets the colour transform that defines the colour effects applied to the object. The argument may be null if the color of the object is not being changed.
@param aTransform an FSColorTransform object that will be applied to the object displayed.
*/
public void setColorTransform(FSColorTransform aTransform)
{
colorTransform = aTransform;
}
/** Sets point of the morphing process for a morph shape in the range 0..65535. May be set to zero if the shape being placed is not being morphed. The value may be set to Transform.VALUE_NOT_SET if the shape is not being morphed.
@param aNumber the progress in the morphing process.
*/
public void setRatio(float aNumber)
{
ratio = aNumber;
}
/**
* Sets the number of layers that this object will mask. May be set to zero
* if the shape being placed does not define a clipping area.
@param aNumber the number of layers clipped.
*/
public void setClippingDepth(int aNumber)
{
clippingDepth = aNumber;
}
/** Set the name of an object to be displayed. If a shape is not being assigned a name then setting the argument to null will omit the attribute when the object is encoded.
@param aString the name assigned to the object.
*/
public void setName(String aString)
{
name = aString;
}
public Object clone()
{
FSPlaceObject2 anObject = (FSPlaceObject2)super.clone();
anObject.transform = (transform != null) ? (FSCoordTransform)transform.clone() : null;
anObject.colorTransform = (colorTransform != null) ? (FSColorTransform)colorTransform.clone() : null;
if (clipEvents != null)
{
anObject.clipEvents = new ArrayList();
for (Iterator i = clipEvents.iterator(); i.hasNext();)
anObject.clipEvents.add(((FSClipEvent)i.next()).clone());
}
else
{
anObject.encodedEvents = Transform.clone(encodedEvents);
}
return anObject;
}
public boolean equals(Object anObject)
{
boolean result = false;
if (super.equals(anObject))
{
FSPlaceObject2 typedObject = (FSPlaceObject2)anObject;
result = place == typedObject.place;
result = result && layer == typedObject.layer;
result = result && identifier == typedObject.identifier;
if (transform == null)
result = result && (typedObject.transform == null);
else
result = result && transform.equals(typedObject.transform);
if (colorTransform == null)
result = result && (typedObject.colorTransform == null);
else
result = result && colorTransform.equals(typedObject.colorTransform);
result = result && ratio == typedObject.ratio;
result = result && clippingDepth == typedObject.clippingDepth;
if (name == null)
result = result && (typedObject.name == null);
else
result = result && name.equals(typedObject.name);
if (transform != null)
result = result && transform.equals(typedObject.transform);
else
result = result && transform == typedObject.transform;
if (clipEvents != null)
result = result && clipEvents.equals(typedObject.clipEvents);
else
result = result && Transform.equals(encodedEvents, typedObject.encodedEvents);
}
return result;
}
public void appendDescription(StringBuffer buffer, int depth)
{
buffer.append(name());
if (depth > 0)
{
buffer.append(": { ");
Transform.append(buffer, "place", place);
Transform.append(buffer, "layer", layer);
Transform.append(buffer, "identifier", identifier);
Transform.append(buffer, "transform", transform, depth);
Transform.append(buffer, "colorTransform", colorTransform, depth);
Transform.append(buffer, "ratio", ratio);
Transform.append(buffer, "clippingDepth", clippingDepth);
Transform.append(buffer, "name", name);
if (clipEvents != null)
Transform.append(buffer, "clipEvents", clipEvents, depth);
else
buffer.append("clipEvents = <data>; ");
buffer.append("}");
}
}
public int length(FSCoder coder)
{
super.length(coder);
coder.context[FSCoder.TransparentColors] = 1;
length += 3;
length += (place == 2 || place == 3) ? 2 : 0;
length += (containsTransform()) ? transform.length(coder) : 0;
length += (containsColorTransform(coder)) ? colorTransform.length(coder) : 0;
length += (containsRatio()) ? 2 : 0;
length += (containsClippingDepth()) ? 2 : 0;
length += containsName() ? coder.strlen(name, true) : 0;
if (containsClipEvents())
{
if (clipEvents != null)
{
int eventSize = coder.context[FSCoder.Version] > 5 ? 4 : 2;
length += 2 + eventSize;
for (Iterator i = clipEvents.iterator(); i.hasNext();)
length += ((FSClipEvent)i.next()).length(coder);
length += eventSize;
}
else
{
length += encodedEvents.length;
}
}
coder.context[FSCoder.TransparentColors] = 0;
return length;
}
public void encode(FSCoder coder)
{
super.encode(coder);
coder.context[FSCoder.TransparentColors] = 1;
coder.writeBits(containsClipEvents() ? 1 : 0, 1);
coder.writeBits(containsClippingDepth() ? 1 : 0, 1);
coder.writeBits(containsName() ? 1 : 0, 1);
coder.writeBits(containsRatio() ? 1 : 0, 1);
coder.writeBits(containsColorTransform(coder) ? 1 : 0, 1);
coder.writeBits(containsTransform() ? 1 : 0, 1);
coder.writeBits(place, 2);
coder.writeWord(layer, 2);
if (place == 2 || place == 3)
coder.writeWord(identifier, 2);
if (containsTransform())
transform.encode(coder);
if (containsColorTransform(coder))
colorTransform.encode(coder);
if (containsRatio())
coder.writeWord((int)(ratio * 65535.0f), 2);
// if (coder.context[FSCoder.Version] > 5)
// {
if (containsName())
{
coder.writeString(name);
coder.writeWord(0, 1);
}
if (containsClippingDepth())
coder.writeWord(clippingDepth, 2);
/* }
else
{
if (containsClippingDepth())
coder.writeWord(clippingDepth+1, 2);
if (containsName())
{
coder.writeString(name);
coder.writeWord(0, 1);
}
}
*/
if (containsClipEvents())
{
if (clipEvents != null)
{
int eventSize = coder.context[FSCoder.Version] > 5 ? 4 : 2;
int eventMask = 0;
coder.writeWord(0, 2);
for (Iterator i = clipEvents.iterator(); i.hasNext();)
eventMask |= ((FSClipEvent)i.next()).getEvent();
coder.writeWord(eventMask, eventSize);
for (Iterator i = clipEvents.iterator(); i.hasNext();)
((FSTransformObject)i.next()).encode(coder);
coder.writeWord(0, eventSize);
}
else
{
coder.writeBytes(encodedEvents);
}
}
coder.context[FSCoder.TransparentColors] = 0;
coder.endObject(name());
}
public void decode(FSCoder coder)
{
boolean containsClipEvents = false;
boolean containsClippingDepth = false;
boolean containsName = false;
boolean containsRatio = false;
boolean containsColorTransform = false;
boolean containsTransform = false;
super.decode(coder);
coder.context[FSCoder.TransparentColors] = 1;
containsClipEvents = coder.readBits(1, false) != 0 ? true : false;
containsClippingDepth = coder.readBits(1, false) != 0 ? true : false;
containsName = coder.readBits(1, false) != 0 ? true : false;
containsRatio = coder.readBits(1, false) != 0 ? true : false;
containsColorTransform = coder.readBits(1, false) != 0 ? true : false;
containsTransform = coder.readBits(1, false) != 0 ? true : false;
place = coder.readBits(2, false);
layer = coder.readWord(2, false);
if (place == 2 || place == 3)
identifier = coder.readWord(2, false);
if (containsTransform)
transform = new FSCoordTransform(coder);
if (containsColorTransform)
colorTransform = new FSColorTransform(coder);
if (containsRatio)
ratio = coder.readWord(2, false) / 65535.0f;
if (containsName)
name = coder.readString();
if (containsClippingDepth)
clippingDepth = coder.readWord(2, false);
if (containsClipEvents)
{
int eventSize = coder.context[FSCoder.Version] > 5 ? 4 : 2;
clipEvents = new ArrayList();
coder.readWord(2, false);
coder.readWord(eventSize, false);
while (coder.scanWord(eventSize, false) != 0)
clipEvents.add(new FSClipEvent(coder));
coder.readWord(eventSize, false);
}
coder.context[FSCoder.TransparentColors] = 0;
coder.endObject(name());
}
private boolean containsTransform()
{
return transform != null;
}
private boolean containsColorTransform(FSCoder coder)
{
return colorTransform != null;
}
private boolean containsClipEvents()
{
return (clipEvents != null && clipEvents.size() > 0) || encodedEvents != null;
}
private boolean containsClippingDepth()
{
return clippingDepth > 0;
}
private boolean containsName()
{
return name != null && name.length() > 0;
}
private boolean containsRatio()
{
return ratio >= 0.0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -