. Coherent Labs

Changelog: Prysm Exporter

Exporter 2023.4.2 (LTS) – released 14 Feb 2024

Fix Fix JavaScript errors by no longer generating HTML Character Entities.
Fix Fix multiline texts in components.

Exporter 2023.4.1 (LTS) – released 18 Jan 2024

Fix Fix animations not starting for masks.
Fix Fix components auto unloading and unloading with runtime aliases.

Exporter 2023.4.0 (LTS) – released 15 Dec 2023

Feature Added an option for exporting the full source when in production mode.
Feature Added methods that unload components in the component library.
Feature Added a component dependencies overview tab.
Feature Added a surface partitioning export mode.
Breaking change
Added support for dependant components.
API Removed animation system and component system backwards compatability scripts.
Enhancement Made runtime aliases resolved correctly at runtime for components.
Fix Fixed multiple mask images sometimes not generating all images.
Fix Fixed broken export when special symbols are present in menus.
Fix The Export shapes as divs warning no longer appears when it shouldn’t.
Fix Fix positioning issues for mask layers with an image.
Fix Fix text coordinates being slightly off in the Editor compared to COHTML.

Exporter 2023.3.0 (LTS) – released 9 Sep 2023

Fix Fix timelines braking nested animations after playFromTo ends and causing infinite looping animation.

Exporter 2023.1.1 (LTS) – released 19 June 2023

Enhancement Reduced memory usage of the animation library by caching all the Float32Array objects.
Feature Added a new callback type `window.prysm.ASCallbackType.ADVANCED` that is called every time the animation system has finished advancing.
Feature Added an option for the components to be loaded or not. If the option is enabled the component can be loaded runtime with a script.
Feature Added an option for lazy displaying of the components when loaded in the UI. If enabled the component instances will be initialized/created by the animation system when they need to be shown.
Feature Added an option for lazy animation states. If enabled the animation data of a component will be loaded when it has to be shown and that will optimize the “Compile code” step of the JavaScript execution.
Feature Added an option for exporting in production mode. When the option is enabled all generated code-containing files are going to be minified so the load time is optimized.
Fix data-bind-html attribute is set properly so the element styles are not lost on model synchronization.
Fix Large .fla files with a complex structure are no longer crashing when opened or exported.
Fix A document with a non-existing project file is now exported correctly.
Fix Old component scripts that are linked in a project file are read correctly and the component name is visualized in the panel.
Fix Fixed styles not being applied to data-bind-for generated elements.
Fix Stopped the framesCatchUp option from having an effect in the runtime as it causes state loss and unexpected looping animations.
Fix Pointer events are now set correctly to the prysm-shape elements and not causing undefined behavior when adding input events.
Fix CLAnimations.gotoAndStop method now stops animations at the right time no matter the .fla document FPS.

Exporter 2023.1.0 (LTS) – released 9 Feb 2023

Fix Aliases are now resolved correctly for placeholder components that are imported in different projects.

Exporter 2022.4.1 (LTS) – released 9 Dec 2022

Enhancement Bindings overview tab can now be used for editing data-bindings instead of just previewing.
Enhancement Added ‘Auto renew’ option in the Bindings overview tab. When it is enabled all the data in the panel will be automatically updated.
Note that when the option is enabled the whole document DOM will be checked for changes and for large scenes this might produce some performance implications.
Enhancement Double clicking onto the split view line is going to hide/show the elements menu in the Bindings overview tab.
Fix Fixed alert about ‘timeline undefined’ error when navigating to symbol/symbol instance via clicking on the pen button in the Bindings overview tab.

Exporter 2022.4.0 (LTS) – released 03 Nov 2022

Fix Fixed a .timeline undefined error that happened when editing bindings through the Bindings overview panel.
Fix Fixed data bindings not being displayed correctly when updating documents from version 2022.1.1.

Exporter 2022.3.1 (LTS) – released 28 Sep 2022

Enhancement Added an option to enable preserving of the current selection when publishing.
Fix Fixed one-pixel gaps for 9 slice with semi-transparent content.
Fix Fixed animations not being accessible from custom data binding attributes when data binding models are synchronized.

Exporter 2022.3.0 (LTS) – released 8 Aug 2022

Feature Added an option to export components scripts only to the document configuration options.
Feature Added button to open the resolved output folder location.
Feature Added a search field for searching specific document configuration settings.
Feature Added a new event target option – ‘Current timeline’ that enables selecting labels from a specific timeline for the ‘Goto and play’ and ‘Play from to’ handlers.
Breaking change
Improved the animation’s speed. Now the Animations system library is working 3 times faster than before and the scripting time is significantly reduced. For more information check the documentation. This enhancement requires version of the Prysm core library or greater.
Enhancement Added support for all the data-bind-style attributes.
Deprecated Removed Prysm 1.0 from the zxp package. If you want to use it make sure to download Prysm Exporter with a version less than 2022.3.0.
Fix Fixed memory leak when data-bind-if is used in combination with ‘Apply to children’ on symbols with a shape element in their timeline.
Fix Fixed events with “Javascript” handlers to be exported when their source includes the symbol ‘&’.

Exporter 2022.1.1 (LTS) – released 10 Jun 2022

Feature Added freeze methods on AnimationState and Timeline instances that make it possible to stop their animations and hide them efficiently.
Feature Added a “Bindings overview” tab that displays all data bindings added to all elements in a fla file.
Feature Added a “Strip scale transform from images” option that embeds the scale transform of images into their width and height.
Enhancement Made clip paths responsive.
Fix Updated the deprecated coh-font-fit-mode directive with font-fit-mode.
Fix Fixed the export of mix blend mode to be correctly applied.
Fix Fixed a memory leak when unregistering elements from the animation system.
Fix Fixed 1 pixel offsets between nine slice grids.
Fix Fixed 1 pixel overlapping anti-aliasing on semi-transparent nine slices.
Fix Fixed incorrect spamming of “Missing metadata for shapes as divs” warnings.
Fix Fixed components not being added to FLA files from project files.

Exporter 2022.1.0 (LTS) – released 17 Feb 2022

Enhancement Added a publish type alias to the pre-publish and post-publish commands.
Fix Fixed nine slice dynamic rescale.
Fix Readded touch events to the exporter UI.
Fix Fixed incorrectly ignoring CLPrysmComponentsSystem.js when set through the project configuration.

Exporter 2021.4.0 (LTS) – released 23 Dec 2021

Feature Masking with a bitmap element in Animate will result in an element with a mask-image property to the HTML.
Feature Exposed methods to the 9-slice elements for rescaling them dynamically.
Feature Made a default ‘Export shapes as divs’ option in the Document tab that its value can be used to specify ‘Export shapes as divs’ for symbols or scenes by choosing ‘Document default’.
Enhancement Improved Prysm components by removing component libraries and working just with components instead. However, old documents that are having Prysm component libraries added will be backward compatible with the new workflow. For more information, you can check here.
Enhancement Made initialization optimizations. Now the animation system will be started when all the Prysm elements/components are loaded inside the Player. For more information, you can check here.
Enhancement Publishing is no more aborted if Prysm exporter fails to read/parse a font file.
Enhancement Font files with the following extensions – ‘.TTF’, ‘.TTC’, ‘.OTF’ are now supported.
Enhancement Improved synchronization between the Prysm exporter panel and Animate. The resolved external files will now preserve their order when a document is opened from the ‘Recent files’ as well.
Fix Animations on elements that are having data-bind-for are now working correctly when the scene starts in the Player.

Exporter 2021.3.3 (LTS) – released 19 Oct 2021

Feature Pre and post build steps can be added to a document
Enhancement Data binding aliases are now just “aliases” that can be used in more fields e.g. in the custom attributes
Enhancement Custom AABB can now affect only the width, only the height or both the width and the height of an element
Enhancement Made the input fields in the UI as big as the panel
Fix Fixed missing animations on elements created at runtime through data-bind-for or JS
Fix Fixed event actions that were breaking when a JS file with undefined variables was added to the document

Exporter 2021.3.2 (LTS) – released 11 Sep 2021

Enhancement Returned the animations play state options for scene and symbol. Now the animations’ play state could be controlled from the UI
Fix Fixed incorrectly generated relative paths in HTML when shared images mappings are used
Fix Fixed showing incorrect information in the Document tab when switching between different .fla documents
Fix Fixed resolved files order that is not preserved when a .fla document is reopened
Fix Fixed errors that are produced from the CLPrysmAnimationSystem that were related to unregistering timelines
Fix Fixed wrongly exported selector for the scene when adding animation events targeting the current scene from the UI
Fix Fixed the button for removing the project file to be enabled when it does not exist
Fix Fixed errors produced from the tabindex polyfill
Fix Fixed reverse playback errors

Exporter 2021.3.1 (LTS) – released 23 Aug 2021

Enhancement Made custom AABB change width and height through an animated symbol
Enhancement Restored the CLAnimations script. It is now named CLPrysmAnimations.js
Fix Fixed incorrectly generated animations for classic tweens on different resolutions

Experimental Version – released 19 Aug 2021

Unified garbage collection for JavaScript and C++ DOM objects for V8
Feature Implemented video element “preload” attribute which now preloads video data for faster seeking
Feature Introduced an example JS library for handling videos with states “coh-state.js”
Enhancement JavaScript garbage collection runs in more incremental steps for V8
Enhancement Initialize virtual keyboard with the data from HTML input elements attributes in Unity3D
Enhancement Added more native JS array methods to the CoherentArrayProxy
Enhancement Made CSS animations to stop on display:none and restart on showing the element
Fix Fixed text shadows on multiline inline text
Fix Fixed enormous memory allocation when letter spacing is negative
Fix Fixed images drawn with incorrect size when CSS filter is applied
Fix Fixed a regression that failed to parse background shorthand without image/color
Fix Fixed a leak during video playback when the Inspector is enabled
Fix Fixed resource request spam when a video reaches its end
Fix Fixed rare video stalls during playback

Exporter 2021.3.0 (LTS) – released 23 Jul 2021

Enhancement Prysm Exporter is now providing workflows that are closer to Flash. This version makes it possible to extend the generated content from Prysm Exporter with custom functionality. However, there are some points that any Prysm user needs to be familiar with before upgrading to the LTS version. For more information about all the changes that are made with the LTS version you can check here. The last version before the LTS will be available with the known Prysm Exporter workflow if the update to LTS is undesirable.

Exporter 2021.2.1 – released 14 Jul 2021

Enhancement Different X and Y blur filter values are now exported correctly.
Enhancement The “auto-import * file fields” are now replaced with “path to * file” fields. Common files are either exported (empty field) or linked to the specified path. This way common files are always exported first and the correct order of scripts is achieved.
Fix Scene files can now be reordered correctly.
Fix Align-items is now correctly exported.

Exporter 2021.2.0 – released 19 May 2021

Feature Prysm components are now working with masks.
Feature Added a project structure to the Prysm Exporter. With the project structure, multiple .fla documents could be unified under one configuration file that holds all the settings related to the project and fla files. For more info check the documentation.
Feature Added media queries to the Prysm Exporter. With the media queries, one document can now define the same UI in different resolutions making it responsive. For more info check the documentation.
Enhancement Link file to symbol and shared files are removed from the extension. However on an update to the new version all the shared files will be distributed to the current document’s JavaScript, CSS and Video files so they are not lost. If you want to share external files between documents now the project structure could be used for this purpose.
Enhancement Shared folders are now replaced with the Shared images mapping feature which is working the same but just for images. Also, it provides a mapping of a single library bitmap item to a system image. For more info check the documentation.
Enhancement With the deprecation of shared folders, the project fonts now can be mapped from all the font library items created. Font items are used from Prysm to map their names to system font files. For more info check the documentation.
Enhancement The “UE4Root” option is removed from the extension. Now when the “Export for UE4” option is enabled then the path to the preloaded resources in the UE4 project will be matched automatically in the selected output folder if the configuration is right.
Enhancement Mask elements are no more exported with the “mask-image” CSS property. Instead “clip-path” CSS property is used.

Exporter 2021.1.3 – released 26 Mar 2021

Feature Movie Clips can now be anchored to the top, left, bottom, and right bounds of their parents.
Feature Mask layers can now contain more than one frame span. A Movie clip made up of shapes can also be used as a mask. Motion tweens and Classic tweens are supported in mask layers.
Fix Fixed animate crash when editing an already deleted AABB layer.

Exporter 2021.1.2 – released 09 Mar 2021

Feature Components can now be generated from a Coherent Prysm document. For more information check out here.
Feature Already generated components can now be loaded in a Coherent Prysm document.
Fix Improved support of fonts that are having UTF-8, UTF-16 symbols, or font-weight in their names. Documented cases where Prysm fonts mapping may not find some font and how to deal with this problem. For more information check out here.

Exporter 2021.1.1 – released 17 Feb 2021

Feature JavaScript, CSS, and video files now can be added per scene from the Scene tab. External files added from the Document tab will be included in each scene making them common files. Shared files are visible per scene as well when an author time shared symbol with linked external files exists in the scene.
Feature Rounded rectangles and circles are now exported as div elements when the “Export shapes as divs” option are enabled.
Enhancement Removed scientific notation and trailing zeros in generated files.
Fix Data binding events with custom handlers are now exported correctly when they are added from the Symbol tab.
Fix The automatically generated custom data binding attribute for a custom-bound event is now registered correctly so the event is not broken on export.
Fix Using “Test Movie” and “Test scene” options will generate a warning in the output panel notifying the user to use the buttons from the Prysm panel for exporting the document.

Exporter 2020.4.0-beta – released 30 Sep 2020

Feature The Show border around text feature of Adobe Animate is now supported
Feature Color effects applied to frames in Adobe Animate are now supported
Feature Blend modes applied to frames in Adobe Animate are now supported
Feature REM units are now supported. The “Units”” tab and the “”Default CSS Length Units”” section are extended with a rem option. A “”rem base”” input in the “”Default CSS Length Units”” defines the base rem pixel value”
Feature 9-sliced movie clips are now supported
Feature Publishing the library item of a movie clip as a component is now supported. Components generate all files that relate to the movie clip in a separate directory
Fix Choosing “percents”” as an option in the “”Default CSS Length Units”” section now affects elements on the stage”
Fix The underscore character can now be used in the “Symbol’s CSS”” and the “”Immediate children’s CSS”” inputs in the “”Properties tab”””
Fix Choosing the “Multiline no-wrap”” behavior for a text now correctly creates texts that don’t wrap long words”
Fix Texts with an origin point outside of their box that are scaled, skewed, or rotated are now correctly published
Enhancement The generated animations are now smoother for classic tweens and motion tweens
Enhancement SVG files are now generated in a new directory named SVG to make the navigation of the resulting files more coherent
Enhancement The names of the HTML files generated for each scene are now always prefixed with the document’s name to reduce collisions with other files
Enhancement Each HTML element is now styled through a single CSS class named “prysm_[position of the element in dom]”” to make browsing the styles of an element more coherent”
Enhancement All geometric shapes created through the various shape and brush tools of Adobe Animate are now published into SVG files
Enhancement Geometric shapes from different layers and frame spans are combined into as little SVG files as possible to increase performance
Enhancement The names of the generated SVG files are changed to [document name]_prysm_[position in dom] to reduce collisions with other files and to make browsing the SVG file of an element more coherent
Enhancement Each geometric shape that can be selected as a single instance in Adobe Animate is wrapped with a group tag in its SVG file to make the generated SVG files more coherent
Enhancement Dynamic texts are now published as p tags in the HTML to fit their semantics
Enhancement Text margins now correctly move the text inside its box rather than moving the text box
Enhancement Rounded borders and bevel borders are now supported for rectangles
Enhancement The generated CSS keyframes are split according to their purpose. There are layoutAnimation, blendModeAnimation, colorEffectAnimation, movieClipVisibilityAnimation and depthAnimation keyframes
Enhancement The generated JS files that contain frame labels are now human-readable
Enhancement The frame labels of the scene are now found under the //scene_labels// key to remove collisions with symbol labels
Enhancement The JS files that contain symbol events are not generated when there are no symbol events
Enhancement A log file with the history of the messages in the “Output”” panel of Adobe Animate is generated in %TEMP%/coherent_prysm_log.log”
Known Issue Mask layers didn’t work as expected in straight cases in the previous version of Prysm, so they are temporarily disabled
Known Issue Bitmap fills didn’t work as expected in straight cases in the previous version of Prysm, so they are temporarily disabled
Known Issue Gradients fills didn’t work as expected in straight cases in the previous version of Prysm, so they are temporarily disabled
Known Issue Filters fills didn’t work as expected in straight cases in the previous version of Prysm, so they are temporarily disabled
Known Issue macOS is unsupported
Known Issue Documents that contain a lot of images in their library are slower to publish
Known Issue Color effects with have alpha additives and alpha multipliers applied to movie clips or layers can turn the background of some geometry elements black
Known Issue Classic tweens with rotation set to “none”” are interpolated from the last frame of the tween to the first frame of the next span”
Expected Behavior Stroke miters that exceed the miter-limit set in Adobe Animate work differently in SVG. Flash clips the strokes to the edge of the miter-limit while the SVG engine acts like the join type is bevel
Expected Behavior Text margins bigger than the text box extend the text box size
Expected Behavior Adobe Animate can create content that is disabled for the Prysm document type. In such scenarios the unsupported content is ignored on publish
Expected Behavior The width and height of a movie clip is defined by the total width and height that its children span
Expected Behavior The X and Y values of objects seen in Adobe Animate can’t be seen in the generated HTML. Elements are published such that applying their affine transformations produces a correct result with the origin point that is set through Adobe Animate
Expected Behavior Movie clips are always published like their registration point is at the top-left of their children’s AABB. This is done so that overflow and events work as expected. This also implies that the top, left and transform-origin values are going to be different from what is seen in Adobe Animate
Expected Behavior When the events set from the “Events”” tab are converted to data-binding events
Expected Behavior Live-view and video is applied only to the image elements of a movie clip, so that the behavior is more predictable
Expected Behavior Choosing “Static”” or “”Relative”” from the “”Position”” dropdown in the “”Properties”” tab removes the top and left values of the generated element”
Expected Behavior Publishing classic tweens that do not have a single movie clip in both frame spans is undefined
Expected Behavior Currently there is no difference in the selected frame label type. All frame label types can be used for animation control
Expected Behavior When “Apply to children”” is selected for the events or properties in the “”Data-binding”” tab any properties or events that have data-binding aliases are resolved at the level of the movie clip”
Expected Behavior Events that are converted to data-binding events are always set to the movie clip. The “Apply to children”” checkbox in the “”Data-binding”” tab does not affect them”
Expected Behavior Movie clip instances that appear in consecutive horizontal frame spans are combined into as little movie clip instances as possible. Their state from different frames is applied as a keyframe animation
Expected Behavior VH and VW units are calculated based on the size of the stage of the document
Expected Behavior Percent units set to a movie clip are calculated relative to the size of the parent symbol. Percent units for elements on the stage are calculated relative to the size of the stage
Expected Behavior The size of the stage is always added to the body tag in pixels. This is done so that percents applied to the immediate children of the body have a baseline value
Documentation In case you have content made with older versions of Prysm, please refer to the migration guide