nameplate.swf
Floating nameplate displayed above players and NPCs in the Trove world, showing the entity's name, club affiliation, insignia (shield + wings), and optionally a tether/group icon with a leader badge.
Document/main class: Nameplate (extends flash.display.MovieClip)
SWF-specific classes: 2
Main class: Nameplate
Nameplate extends MovieClip directly (not UIComponent). The constructor sets up the insignia clip's scale and position offset, creates two IggyTween instances for fade-in and fade-out of the insignia, and registers four ExternalInterface callbacks. It also initializes an AnimatorFactory3D with a baked Matrix3D to apply a fixed 3-D perspective transform to the insignia clip (translation x≈486, scaled ~0.99884). A ADDED_TO_STAGE listener fires once to set the root perspective projection (90.19° FOV, center 275×200).
Rendering is not invalidation-based — each setter directly mutates text fields or triggers a stage.invalidate() + RENDER listener to fire a one-shot RequestRedraw call back to the game.
Public methods
setText(name:String, color:uint, shieldFrame:int, wingsFrame:int) : void—nameis the composed string: the engine has already joined the player's title onto the name, and sends nothing that separates the two.colorarrives with0xFFin the top (alpha) byte. SetstextField.textand color, jumpsinsignia.shieldandinsignia.wingsto the given frames, then queues aRequestRedrawon the nextRENDERevent.setClubText(text:String, color:uint) : *— setsclubField.textand color directly. The engine sends the club name already wrapped in angle brackets (<SORUDEN>, from a<{0}>format string in the client), so the brackets are the game's formatting, not part of the name.showIcon(visible:Boolean) : void— fades theinsigniain or out usingIggyTween; the engine sendsshowIcon(false)for a head that should not carry a crest. The crest is the only thing this fades. If the opposing tween is running it is stopped first. CallsTweenCompleteviaExternalInterfaceafter the tween finishes (viaonFinalTweenRender).setTetherIcon(textureName:String, isLeader:Boolean) : void— loads a texture into thegroupIconObjectPreviewresized to 30×30; the loaded callback repositionstetherArtContainerto the left of the name text and callsRequestRedraw. Also setsleaderIcon.visible.__setPerspectiveProjection_(e:Event) : void—ADDED_TO_STAGEhandler; sets root perspective projection FOV and center point.
Key fields
textField : TextField— entity name display.clubField : TextField— club/guild name display.insignia : MovieClip— composite clip (character 101) withshield(20 frames) andwings(26 frames) sub-clips, stepped bysetText's frame arguments. Alpha-tweened byshowIcon.tetherArtContainer : MovieClip— containsgroupIcon(ObjectPreview) andleaderIcon; repositioned relative to the name text width.leaderIcon(character 2) is an empty one-frame sprite, so setting it visible draws nothing: the stock plate marks the group leader without showing anything for it.fadeInTween : IggyTween— tweensinsignia.alpha0→1 overTWEEN_TIME(0.2 s).fadeOutTween : IggyTween— tweensinsignia.alpha1→0 overTWEEN_TIME(0.2 s).TWEEN_TIME : Number = 0.2— duration in seconds for insignia fade.__animFactory_insigniaaf1 : AnimatorFactory3D— baked 3-D animation factory; initialized once and applied toinsignia.
Frame scripts / timeline
None defined as addFrameScript calls. Timeline animation is handled via AnimatorFactory3D baked data rather than frame scripts. The 1060 × 174 stage has one frame whose root holds exactly four named children: tetherArtContainer, textField, clubField, insignia. Both text fields carry a DropShadowFilter in their placement (distance 2, angle 45°, black, alpha 1, no blur, strength 1). Rendered stock, the name's ink sits on rows 95–123 and the club's on 131–154, 19 rows above the bottom edge.
Runtime dependencies & integration
IggyFunctions.inIggy— gatesExternalInterfacecallbacks; in preview mode setsinsignia.shieldandinsignia.wingsto frame 8.ExternalInterface.addCallback("setText", setText)— sets name text, color, shield frame, wings frame.ExternalInterface.addCallback("setClubText", setClubText)— sets club name and color.ExternalInterface.addCallback("showIcon", showIcon)— triggers insignia fade in/out.ExternalInterface.addCallback("setTetherIcon", setTetherIcon)— loads group/tether icon texture.ExternalInterface.call("RequestRedraw")— fired after text changes and after tween completes, viaRENDERevent listeners.ExternalInterface.call("TweenComplete")— fired once the insignia fade tween finishes, allowing the game to update layout.IggyTween— Iggy runtime tween class (not documented); used foralphaproperty oninsignia._kiwi.Core.ObjectPreview— loads and displays a named texture; used forgroupIcon.fl.motion.AnimatorFactory3D/MotionBase— used to apply a single-keyframe 3-D matrix toinsigniaat startup.Event.ADDED_TO_STAGE— sets perspective projection on root.Event.RENDER— one-shot listener used to coalesceRequestRedrawandTweenCompletecalls after layout changes.
Other game-specific classes
image(extends_kiwi.Core.ObjectPreview) — Embedsymbol1; bare wrapper used as the concreteObjectPreviewsymbol in the library. No additional logic.
Notable logic
- The
setTetherIconloaded callback repositionstetherArtContainerusing livestage.width / 2 - textField.textWidth / 2, so the group icon always hugs the left edge of the player's name regardless of name length. showIconis guard-heavy: it checks both the currentalphaand whether the opposing tweenisPlayingbefore starting a tween, preventing redundant or conflicting animations.- The 3-D matrix baked into
AnimatorFactory3D(overrideTargetTransform) replaces the constructor's 0.85 scale and +6.6 offset, so what runs is scale 0.99884 at x 486.05: in game the crest sits centred above the name, not at the left edge where a static render of the file shows it. It is a fixed layout position rather than runtime data. leaderIcondefaults to hidden in the constructor and is only revealed whensetTetherIconis called withisLeader = true.