Flash to HTML5 Conversion: What to Do With a Legacy Course Library
Do not convert the whole library. Sort every Flash course into retire, lightly convert or rebuild, and only spend production budget on the last two. Adobe ended Flash Player support on 31 December 2020 and began blocking Flash content on 12 January 2021, so any course still served as a SWF file is either broken or held together by a workaround. The cheapest conversion is the one you decide not to do.
On this page
Why the old library is still your problem
Let us be real. Flash died years ago and plenty of organisations are still living with the aftermath. The courses were built in 2008 or 2012, uploaded to a learning management system, tagged complete by thousands of employees, and then left alone because they kept working. Until they did not.
The dates matter. Adobe's own eLearning community blog recorded that support for Flash Player ended on 31 December 2020, and Adobe would block Flash content from running on 12 January 2021. Browsers had already been removing the plugin before that. The same post notes that a standalone Flash Player Projector could still open local SWF files, but it is unsupported, and the author calls it a short-term fix and not a long-term answer. We agree. A training library that depends on an unsupported desktop player is a compliance risk waiting for an audit.
Here is the thing though. The problem is rarely one broken course. It is a hundred of them, spread across three LMS migrations, with no source files for half. Nobody knows which are still assigned, which are duplicates and which teach a regulation that changed in 2019. A library like that does not need a conversion tool first. It needs an inventory.
Triage before you touch a tool
Start with a spreadsheet, not software. One row per course. Pull these columns from the LMS and from whoever owns the content:
- Last launch date and number of launches in the past 24 months
- Whether it is mandatory, regulatory or optional
- Whether the source files (FLA, Captivate project, PowerPoint) still exist
- Whether the content is still accurate
- Rough interactivity level: slides and narration, quizzes, branching, simulation or game
Then sort. A course that nobody has launched in two years and that is not mandatory goes into the retire pile. A course whose content is accurate, built mostly from slides and narration, goes into light conversion. A course that is mandatory, interactive and out of date goes into rebuild, and usually gets a content refresh while it is there.
The split below is a worked example, not client data. Take a library of 120 Flash courses. In our view a split of 30 retired, 40 lightly converted and 50 rebuilt is a realistic shape for a mixed corporate library, and it shows why a flat per-course quote for all 120 is the wrong way to buy this work.
One more filter is worth applying: ownership. Every course that survives triage needs a named person who answers for its accuracy. If nobody in the business will put their name against a course, that is a strong hint it belongs in the retire pile. It is a blunt test, and it costs nothing to run.
The retire pile also saves you something people forget. Every course you keep is a course you must test, host, translate and review for accuracy again next year. Deleting is a feature.
Four routes: emulate, convert, rebuild, retire
Route one: emulate
Ruffle is an open-source Flash emulator written in Rust that runs in the browser through WebAssembly. According to its Wikipedia entry, it implements about 99% of the ActionScript 1.0 and 2.0 language and about 90% of the ActionScript 3.0 language, with API coverage lower than that, and it is used by sites such as the Internet Archive to preserve Flash games and animations. That is impressive for preservation. For a compliance course whose quiz scoring relies on one of the missing API calls, it is a gamble. Emulation can work as a stopgap for a low-risk course while you plan the real fix. We would not stake a mandatory training record on it.
Route two: automated or semi-automated conversion
Some tools can republish older projects to HTML5. Adobe Captivate keeps an HTML5 tracker that lists, slide by slide, the features that will not carry over. iSpring Suite converts PowerPoint-based programs quickly because it works from the slides. A CommLab India overview of conversion tools describes the same pattern: Captivate needs manual fixes where SWF features do not work in HTML5, and iSpring is the closest to automatic but depends entirely on PowerPoint. In our experience this route suits courses that were slides, narration and simple quizzes to begin with. Budget a day or two per course for fixes and testing, not minutes.
Route three: rebuild
If a course used ActionScript for branching, drag-and-drop, a simulation or a game, there is no meaningful conversion. The logic has to be rebuilt. The usual home for it is Articulate Storyline 360 for custom interactions and Rise 360 for responsive, scrolling content. The same CommLab India piece notes that complex Flash animations with heavy branching cannot simply be moved onto one slide and have to be split across several. Rebuilds are also your chance to fix the instructional design. If the original course was forty minutes of click-next, rebuilding it as twelve minutes of scenarios is not scope creep. It is the point. Our rapid eLearning guide covers how to keep that rebuild moving without cutting quality.
Route four: retire
Archive the SWF file and the completion data, remove the course from the catalogue, and tell the owner. If a regulator might ask for evidence of past training, keep the records, not the player.
Our opinionated take: the vendor who offers to convert your whole library is not working for you. A per-course price across all 120 courses rewards conversion volume, and the retire pile earns the vendor nothing. In the worked example above, retiring 30 courses removes a quarter of the project before a single hour of production starts. Ask any vendor, including us, to quote the triage separately and to be paid the same whether the answer is convert or delete.
The LMS and tracking trap
The technical part nobody mentions in the sales call is what happens to the learner record. Your Flash courses were published to some version of SCORM, and the LMS holds completions, scores and bookmarks against those course identifiers. Replace the package carelessly and you can orphan the history. A manager who completed the course in 2019 suddenly shows as not started.
Three habits prevent most of the damage:
- Export completion and score data for every course before you replace anything. Keep it somewhere that is not the LMS.
- Decide whether the new package replaces the old one in place or ships as a new course with a mapped record. Do not leave this to chance.
- Test one full learner journey in your actual LMS, including resume after exit, not just in a preview window. Our SCORM explainer covers why the same package can behave differently on different platforms.
Mobile is the other thing the old library never planned for. Flash courses were fixed-size stages built for a desktop browser. HTML5 output is expected to work on a phone, a tablet and a locked-down office laptop. That means a straight like-for-like conversion can technically play and still be unusable on a small screen, with tiny buttons and text that does not reflow. Check the converted course on the devices your learners really use, not just the developer's monitor.
On the standard itself, publish to what your LMS reports on reliably. A legacy LMS that has handled SCORM 1.2 for a decade will not become better at xAPI because you wish it would. If you do want richer data later, our SCORM and xAPI development service covers the move. Do it as a second step, not as a side effect of rescuing Flash.
A phased plan that finishes
Large library projects fail by stalling, not by exploding. The team converts the easy forty, loses momentum, and the hard fifty sit in a backlog for two years. A phased plan avoids that.
Phase one, inventory and triage. Two to three weeks for a library of this size, mostly spent chasing source files and asking owners whether a course still matters. Output: the spreadsheet, a decision per course and a priced plan.
Phase two, mandatory and regulatory courses first. Whatever carries legal or audit exposure goes first, whichever route it takes. These are the courses that hurt if they stay broken.
Phase three, the light conversions in batches. Batch them by authoring tool and source type so the team learns the quirks once. Pilot with five before you commit to forty.
Phase four, the long tail of rebuilds. Pair each rebuild with a content refresh. Our eLearning development cost guide explains how interactivity level drives price, which is exactly the variable that separates a light conversion from a rebuild. If your in-house team cannot absorb the volume, outsourcing eLearning development in batches is a sensible way to keep both quality and calendar under control.
One last practical point. Keep a short change log per course: what was converted, what was dropped, what the new identifier is. In three years someone will ask why a module looks different, and the log answers it in ten seconds.
Not sure how many of your Flash courses are worth saving? Send us the course list from your LMS and we will tell you which ones we would retire, convert or rebuild, before any quote. Start with a short consultation.
Frequently asked questions
Can Flash eLearning courses still run in a modern browser?
Not natively. Adobe ended Flash Player support on 31 December 2020 and began blocking Flash content from running on 12 January 2021. Emulators such as Ruffle can play some SWF files, but they do not implement every part of ActionScript, so each course needs testing.
Is there a tool that converts Flash courses to HTML5 automatically?
Partly. Adobe Captivate can republish some legacy projects to HTML5 and flags what will not work, and iSpring Suite converts PowerPoint-based programs. Courses with heavy ActionScript, custom branching or games almost always need a rebuild in Articulate Storyline 360 or Rise 360.
Do we have to convert every course in the library?
No. Most legacy libraries contain courses that are outdated, duplicated or never launched. Triage first by usage, compliance need and content accuracy, then retire what nobody needs before you spend on conversion.
Will learner completion records survive the conversion?
They can, but only if you plan for it. Export completion and score data from the LMS before replacing a course, and keep the new package's identifiers and reporting settings aligned with the old one. Test one learner journey end to end before you migrate the batch.
Should we publish to SCORM 1.2, SCORM 2004 or xAPI?
Publish to whatever your LMS reports on reliably. Most legacy LMS platforms handle SCORM 1.2 without trouble. Move to xAPI only if you need data beyond completion and score, and you have a learning record store to receive it.
How long does a legacy course library conversion take?
It depends on the mix, not the course count. Retired courses take no build time, light conversions take days, and interactive rebuilds take weeks each. A phased plan that starts with compliance-critical courses lets you show progress while the long tail waits.
Sources
- Adobe eLearning community: How to view Flash content after December 31, 2020 and January 12, 2021, verified 26 October 2026
- Ruffle (software), Wikipedia, verified 26 October 2026
- CommLab India: Popular tools for Flash to HTML5 conversion, verified 26 October 2026
flash to html5 conversion legacy elearning conversion convert flash courses scorm course development custom elearning development elearning company in india