| /* |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| */ |
| |
| package org.apache.flex.swf.tags; |
| |
| import org.apache.flex.swf.TagType; |
| import org.apache.flex.swf.types.CXFormWithAlpha; |
| import org.apache.flex.swf.types.ClipActions; |
| |
| /** |
| * Represents a <code>PlaceObject2</code> tag in a SWF file. |
| * <p> |
| * The {@code PlaceObject2} tag extends the functionality of the |
| * {@code PlaceObject} tag. The {@code PlaceObject2} tag can both add a |
| * character to the display list, and modify the attributes of a character that |
| * is already on the display list. {@code The PlaceObject2} tag changed slightly |
| * from SWF 4 to SWF 5. In SWF 5, clip actions were added. |
| * <p> |
| * The tag begins with a group of flags that indicate which fields are present |
| * in the tag. The optional fields are <code>CharacterId, Matrix, |
| * ColorTransform, Ratio, ClipDepth, Name, ClipActions</code>. The Depth field |
| * is the only field that is always required. |
| * <p> |
| * The depth value determines the stacking order of the character. Characters |
| * with lower depth values are displayed underneath characters with higher depth |
| * values. A depth value of 1 means the character is displayed at the bottom of |
| * the stack. Any given depth can have only one character. This means a |
| * character that is already on the display list can be identified by its depth |
| * alone (that is, a CharacterId is not required). |
| * <p> |
| * The PlaceFlagMove and PlaceFlagHasCharacter tags indicate whether a new |
| * character is being added to the display list, or a character already on the |
| * display list is being modified. |
| */ |
| public class PlaceObject2Tag extends PlaceObjectTag |
| { |
| /** |
| * Constructor. |
| */ |
| public PlaceObject2Tag() |
| { |
| super(TagType.PlaceObject2); |
| } |
| |
| /** |
| * Protected constructor for use by subclasses with other tag types. |
| */ |
| protected PlaceObject2Tag(TagType type) |
| { |
| super(type); |
| } |
| |
| private boolean hasClipActions; |
| private boolean hasClipDepth; |
| private boolean hasName; |
| private boolean hasRatio; |
| private boolean hasColorTransform; |
| private boolean hasMatrix; |
| private boolean hasCharacter; |
| private boolean move; |
| |
| private int ratio; |
| private int clipDepth; |
| private String name; |
| private ClipActions clipActions; |
| private CXFormWithAlpha colorTransform; |
| |
| @Override |
| public String description() |
| { |
| final StringBuilder result = new StringBuilder(); |
| result.append(String.format("ratio=%d, name=%s, id=%s, depth=%d (%s%s%s%s%s%s%s%s)", |
| ratio, name, hasCharacter ? character.getCharacterID() : "", depth, |
| hasClipActions ? "hasClipAction " : "", |
| hasClipDepth ? "hasClipDepth " : "", |
| hasName ? "hasName " : "", |
| hasRatio ? "hasRatio " : "", |
| hasColorTransform ? "hasColorTransform " : "", |
| hasMatrix ? "hasMatrix " : "", |
| move ? "move " : "", |
| hasCharacter ? "hasCharacter " : "")); |
| result.append("\n >> ").append(character); |
| return result.toString(); |
| } |
| |
| public boolean isHasClipActions() |
| { |
| return hasClipActions; |
| } |
| |
| public void setHasClipActions(boolean hasClipActions) |
| { |
| this.hasClipActions = hasClipActions; |
| } |
| |
| public boolean isHasClipDepth() |
| { |
| return hasClipDepth; |
| } |
| |
| public void setHasClipDepth(boolean hasClipDepth) |
| { |
| this.hasClipDepth = hasClipDepth; |
| } |
| |
| public boolean isHasName() |
| { |
| return hasName; |
| } |
| |
| public void setHasName(boolean hasName) |
| { |
| this.hasName = hasName; |
| } |
| |
| public boolean isHasRatio() |
| { |
| return hasRatio; |
| } |
| |
| public void setHasRatio(boolean hasRatio) |
| { |
| this.hasRatio = hasRatio; |
| } |
| |
| public boolean isHasColorTransform() |
| { |
| return hasColorTransform; |
| } |
| |
| public void setHasColorTransform(boolean hasColorTransform) |
| { |
| this.hasColorTransform = hasColorTransform; |
| } |
| |
| public boolean isHasMatrix() |
| { |
| return hasMatrix; |
| } |
| |
| public void setHasMatrix(boolean hasMatrix) |
| { |
| this.hasMatrix = hasMatrix; |
| } |
| |
| public boolean isHasCharacter() |
| { |
| return hasCharacter; |
| } |
| |
| public void setHasCharacter(boolean hasCharacter) |
| { |
| this.hasCharacter = hasCharacter; |
| } |
| |
| public boolean isMove() |
| { |
| return move; |
| } |
| |
| public void setMove(boolean move) |
| { |
| this.move = move; |
| } |
| |
| public int getRatio() |
| { |
| return ratio; |
| } |
| |
| public void setRatio(int ratio) |
| { |
| this.ratio = ratio; |
| } |
| |
| public String getName() |
| { |
| return name; |
| } |
| |
| public void setName(String name) |
| { |
| this.name = name; |
| } |
| |
| public ClipActions getClipActions() |
| { |
| return clipActions; |
| } |
| |
| public void setClipActions(ClipActions clipActions) |
| { |
| this.clipActions = clipActions; |
| } |
| |
| @Override |
| public CXFormWithAlpha getColorTransform() |
| { |
| return colorTransform; |
| } |
| |
| public void setColorTransform(CXFormWithAlpha colorTransform) |
| { |
| this.colorTransform = colorTransform; |
| } |
| |
| public int getClipDepth() |
| { |
| return clipDepth; |
| } |
| |
| public void setClipDepth(int clipDepth) |
| { |
| this.clipDepth = clipDepth; |
| } |
| |
| @Override |
| public Iterable<ICharacterTag> getReferences() |
| { |
| if (!isHasCharacter()) |
| return CharacterIterableFactory.empty(); |
| |
| return super.getReferences(); |
| } |
| } |