00:00
00:00
Bill Premo @Bill

Age 35

Game Developer

American Academy of Art

Las Vegas

Joined on 7/15/03

Level:
23
Exp Points:
5,878 / 5,880
Exp Rank:
9,160
Vote Power:
6.52 votes
Art Scouts
5
Rank:
Private
Global Rank:
3,713
Blams:
1,356
Saves:
1,171
B/P Bonus:
18%
Whistle:
Bronze
Trophies:
60
Medals:
514
Supporter:
10y 11m 14d
Gear:
3

Altering these settings may filter what you see.

Latest News

More

The native engine I built was able to import .fla and edit the actual shapes and forms but it had inherent structural differences keeping it from being 100% compatible. My native engine uses classify faces which works better when it knows the structure of how shapes got to where they were. When you import a flash file it loses context of the topology.

iu_1570705_569588.png

example of the limitations of classify faces


I decided to make a 2nd engine to handle .fla import I've been able to narrow down the key parts of the import pipeline are edgefills and contour tracing for rendering. I experimented with scanline rendering which might come in handy later.


iu_1570706_569588.webp

Result of experimenting with scanline rendering interacting with new brush strokes.


Based on my research (two most helpful being Claus Wahlers and Mike Swanson's work) and my own hands on experimentation with JSFL, it's pretty clear Flash stores shapes as a flat list of edges, straight lines and quadratic curves.

Each edge carries references to the fill on its left side and the fill on its right side. There are no closed paths in the traditional vector graphics sense. To render a shape, it walks the edge list, groups edges by fill style, reverses any edges that were recorded on the 'wrong' side, chains them into closed contours, and then fills each contour with its assigned style.

This 'edge soup' representation is what makes Flash's merge drawing possible. When you paint a new stroke onto a shape, the editor can just toss more edges into the soup, split any edges that intersect existing ones, and reassign fills.


I'm at the point where I've figured out how to render the shapes in the correct order and I'm able move the shapes.

iu_1570707_569588.png

I'm currently working on getting same colored fills to merge the next step will be to get different colors to cut and divide fills and the final step will be applying these behaviors to the brush and selection tool properly.


-Bill


This exact post is also on Patreon I'm proud to say I've worked on this project every single day of 2026 nearly non stop besides sleeping,eating,and walking my dog. Only support the Patreon if you can afford to.


Latest Art

More

Recent Game Medals

5,595 Points

Real Life Girlfriend 5 Points

Turn on the Meshi Meshi Woo Woo.

Puzzle Master 100 Points

Put the collage back together.

Quack 5 Points

Find Sabtastic's friends.

Art Aficionado 5 Points

Admire the collage for 5 minutes.

The Witch Wins 100 Points

Win Necrochess.

Skeleton Crew 10 Points

Get a building to level three.

Welcome To Necrochess 5 Points

Lose a game.

Full Power 10 Points

Get a unit to level three.

Forbidden Knowledge 10 Points

Get a spellbook to level three.

No Biggie 10 Points

Earn 50,000 points.

Latest Shared Creations

Boxer Bomb

Added to bosses for Cathode Raybots Feb 10, 2013.

Bomb

Added to faces for Cathode Raybots Feb 10, 2013.

test001

Added to faces for Cathode Raybots Feb 9, 2013.

Cookie Jar

Added to syncdata for Talk Head Oct 6, 2012.