News in FFDec 24.0.x

Highlighting of variables, properties, and methods, enhanced “go to definition” functionality, error underlining, basic code completion. TOML-based configuration system, support for Windows AERO, and several other enhancements in 24.0.x.

24.0.0 – 2025-06-24

Simple Editor – Button Timeline Editing

The simple editor now supports editing button timelines, including a header that indicates button states. You can add or remove frames and place objects on the timeline.

Button timeline

Configuration in TOML format

In previous versions, configuration was stored in binary files as serialized Java objects, making manual editing impossible. The new version uses a human-readable and easily editable format called TOML (Tom’s Obvious, Minimal Language). For more information, visit https://toml.io/.

Configuration File Locations

Windows: %APPDATA%\JPEXS\FFDec\config.toml
(Typically located in C:\Users\<UserName>\AppData\Roaming\JPEXS\FFDec\config.toml)

Linux:

  • $XDG_CONFIG_HOME/FFDec/config.toml
  • ~/.config/FFDec/config.toml
  • ~/.FFDec/config.toml (used in older versions)

macOS: ~/Library/Application Support/FFDec/config.toml

Configuration File Structure

The config.toml file includes a [meta] section that contains metadata about the configuration file itself. This section is properly commented so that users can easily understand the meaning of each item.

The actual configuration settings are stored in the [configuration] section.

To include detailed comments in the file, set showComments = true in the [meta] section and then open and exit FFDec again.

By default, the configuration file only displays modified items. To show all settings, set modifiedOnly = false in the [meta] section and open and exit FFDec.

Sample configuration file

Configuration Backwards Compatibility

FFDec 24 saves the configuration in both TOML and the legacy binary format, allowing older versions to read it. When loading the configuration, FFDec prefers the TOML file over the binary one.

This means that if you use version 24 and then change some settings in an older version, those changes will not be reflected when you return to version 24 — because the existing TOML file takes precedence.

For this reason, using older versions after switching to version 24 is not recommended.

Loading and Storing the Configuration File via CLI

Two new command-line options have been added: -configFile and -storeConfigFile.

-configFile <file>
Loads the configuration from the specified <file>.

-storeConfigFile [-comments] [-all] <file>
Stores the current configuration to the specified <file>.
Use the -comments flag to include section titles and descriptions.
Use the -all flag to export all configuration settings, not just the modified ones.

Quick Find in Editors Shows Occurrence Count

The quick find dialog (opened with Ctrl+F) now displays the total number of occurrences of the searched string, along with the index of the currently selected occurrence.

Number of occurrences

“Always on Top” Switch

The main FFDec window title bar now includes an icon that toggles the “Always on Top” mode on or off. When enabled, the window stays above all other application windows.

For users of the non-ribbon interface, this option is available under the View menu.

New titlebar icon

Windows AERO support

We have added support for Windows Aero to enhance the user experience on Windows systems. This feature includes native window management behaviors such as snapping windows to screen edges—dragging a window to the top of the screen maximizes it, while dragging it to the sides resizes it to fill half the screen. This integration provides a more seamless and intuitive interaction, aligning with familiar Windows desktop conventions.

Coordinates Displayed to Two Decimal Places

When moving the mouse over objects on the stage, the current position is now shown with two decimal places instead of whole numbers. This provides more precise coordinate feedback, especially when zoomed in.

Float coordinate to 2 decimal places when zoomed

“Show Detail” Context Menu in Folder View

Some users found it unintuitive to open item details from the folder view, as it required either expanding the parent node in the tree view and selecting it, or double-clicking the item — which wasn’t always obvious. To address this, a new “Show detail” option has been added to the context menu, providing a clearer and more accessible way to open item details.

Show detail context menu item on folder view

Add Class to AS2 Packages

A new context menu item has been added for AS2 packages, providing a shortcut to quickly add a class to the package.

New context menu item on AS2 packages

Simple Editor: Detect Color Names

Colors in the simple editor now display their names based on standard CSS color names.

Displayed color name (white)

AS1/2/3 Variable Occurrences Highlighting

When you click on a variable (or a property in AS3), the code editor highlights all occurrences of it in the code. Additionally, these occurrences are visually marked as highlighted areas in the right-side overview panel next to the vertical scrollbar.

This isn’t just simple text matching — the editor understands the context of each variable, including where it’s defined and its current scope.

This feature works while editing as well.

Variables highlighting

AS1/2/3 Error Highlighting

When writing ActionScript in the editor, errors in the code are automatically underlined in red after a short delay. Hovering over the underlined code shows an error description. Errors are also indicated by red markers in the right-side overview panel next to the scrollbar.

Error underline with error description

AS1/2/3 Improved Navigation to Definition

Navigation to definitions using Ctrl+Click has been enhanced. It now works even in edit mode (for local jumps only). The underline color indicates the type of jump:

  • Blue for jumps within the current script
  • Green for jumps within the current SWF
  • Fuchsia for jumps to other SWF files (when using dependencies)

For Flash built-in classes and methods, navigation will open the corresponding location inside the playerglobal.swc file.

Goto definition via Ctrl+click
Message displayed on clicking external link

Export Subsprite Animation

Sometimes when exporting an animation, FFDec exports only a static image. This happens if the SWF or sprite contains a single frame and all animations are implemented using subsprites.

With the new context menu option on frames, you can now export these kinds of animations. However, you need to specify the total frame length manually, since subsprite animations don’t always have a clear endpoint—each subsprite has its own timeline.

Be aware that exporting continuous animations (like GIFs) may be challenging in such cases.

Dialog for subsprite animation export

Show Item in the Flash Player

A new context menu item is available on graphic and sound tags. It launches the Flash Player with a SWF file containing only the selected item and its dependencies. This is useful for verifying whether FFDec’s built-in viewer renders the item correctly and to see how it really looks.

Please note that for this preview, all ActionScript is stripped from the item.

New context menu item

Replacing Individual Sound Stream Ranges

Previous versions allowed replacing only the entire SoundStream, ignoring any gaps between block ranges. In the new version, you can replace specific ranges within the stream.

If the imported sound format (bit depth, stereo/mono, sample rate, MP3/WAV) differs from the original, all blocks in the stream are converted to WAV and upgraded to the higher quality settings of the two. For example, if the original stream was mono and you import stereo audio, the entire stream will be converted to stereo.

Replace context menu on sound stream blocks range

This change also enables bulk importing of files.
A new command-line option -startFrame <startFrame> was added to the -replace command, allowing you to specify the starting block to replace.

Save to File in the Error Log Dialog

The error log window (accessible via the icon in the bottom-right corner of the main window) now includes a button to save the entire list of errors to a file. This feature is useful for reporting bugs in the issue tracker.

New button for saving error log

ImportAssets Tag with Single Item With a Name

When an ImportAssets or ImportAssets2 tag contains only one imported asset, its name is now displayed directly in the tree view, similar to how it’s shown for ExportAssets tags.

ImportAssets tag gets its title from the single name

CLI Command -dumpas2 Option -exportNames

The CLI command -dumpas2 prints AS1/2 script names to the console, showing the names used in the GUI. To print export names (which can be used with the -replace command), you can now add the new option -exportNames.

AS1/2/3 Code Completion

The code editor now suggests variables, properties, and method names when you press the dot (.) or Ctrl+Space.

Code completion after pressing dot

If you find the automatic suggestions after typing a dot annoying, you can disable this feature in the Advanced settings.

Please note that for AS1/2, suggestions for properties and methods are limited because type information is not available.

Copy/Paste Individual Transforms

Previously, only the entire transformation matrix could be copied to the clipboard in transform mode. Now, you can copy individual settings like Scale, Rotate, Skew, etc., and then paste or apply them elsewhere.

New buttons

Changed: Single DoAction Tag as Frame Node

When a frame contains only one DoAction tag, it is now displayed directly as the frame node. This removes the need to expand frame nodes and makes switching between scripts faster.

Script frames before – need to expand
After – no need to expand

Changed: AS1/2 Scripts in Default Package Exported to Different Directory

Scripts from the default package (not those inside the __Packages folder) are now exported to and imported from the main scripts folder, instead of the localized <default package> folder as before.
(This change applies only when package flattening is enabled.)

This may break backward compatibility. To import scripts from older FFDec versions, you should manually move the scripts from the <default package> folder to the main scripts folder.

Changed: XML Export Dialog Selects a File

The SWF to XML export dialog now selects an XML file by default instead of a directory. When exporting multiple SWFs, it still selects a directory.


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *