Joe Miller's ActionScript 2.0 framework for Adobe Flash — a collection of light-weight basic user interface, layout, loading, media, and data classes designed as a foundation for Flash-era projects (mid-to-late 2000s).
Successor to indivision-codebase-as1 — strict superset adding 9 new packages and substantial expansion of existing ones (see AS1 vs AS2).
- Stack: ActionScript 2.0 (Flash MX 2004 / Flash Player 7+).
- Public origin: was published on Google Code Archive at
code.google.com/archive/p/indivision-codebase-as2/before migrating to GitHub. - State: archived; Flash itself reached end-of-life on December 31, 2020. This codebase is preserved for historical/educational interest and for restoring legacy Flash-era projects that depend on it.
indivision-codebase-as2/
├── README.md
├── classes/
│ ├── com/ ← bundled third-party AS classes
│ │ ├── robertpenner/ ← easing equations
│ │ └── senocular/ ← Path utility
│ └── net/indivision/ ← Indivision's framework (17 packages, 80 classes)
├── documentation/ ← JavaDoc-style HTML documentation
└── fla_examples/
├── source/ ← runnable .fla demos organized by package
└── deploy/ ← compiled .swf output
80 classes across 17 packages.
Arrangement methods similar to the Align window available in the Flash IDE.
Align— align objects to common edges or to a target.Axis— single-axis arrangement (X or Y).Boundary— defines a rectangular boundary for arrangement.Distribute— even spacing distribution.Position— direct positioning utility.StageManager— manages stage-relative arrangement; auto-rearranges on stage resize.StagePosition— anchor objects to stage positions (corners, edges, center).
User-interaction controls (buttons, scrollbars, menus).
AbstractButton— base class for all button variants.AnimatedButton— button with frame-based animations.CustomButton,CustomButtonStyle— fully customizable button + its style descriptor.LabelButton,LabelButtonStyle— text-labeled button + its style descriptor.LinearButton— toolbar-style button arrangement.MenuBase— generic menu component, extendsMovieClipDispatcher.ScrollBar— scrollbar component, extendsMovieClipDispatcher.Scrub,IScrubbable— media-style scrubber control + interface for scrubbable targets.
Foundation classes used throughout the codebase.
AbstractDispatcher— base class for event-dispatching objects.AbstractMovieClip— base class for AS2 movieclip-backed objects (works around AS2 limitations on extending MovieClip).MovieClipDispatcher— combines AbstractMovieClip + AbstractDispatcher for stage-attached event-dispatching components.
Data parsing and proxy classes.
DataProviderProxy— bridges arrays/objects into the format expected by MX DataProvider-compatible components.XMLConstruct— XML-to-Flash-Object parser modeled after XML / XMLNode structure. Lets you author XML and have it materialize as a tree of typed Objects.XMLConstructNode— node in the XMLConstruct parse tree.
Debug utilities.
Trace— wrapper aroundtrace()with optional formatting (timestamps, source labels).JavaAlert— firesgetURL("javascript:alert(...)")from Flash for browser-side debug alerts (useful when Flash debugger isn't available).
Visual effects that can be applied interchangeably to any object via a common API.
AbstractEffect— base interface for effects.Fade— alpha-fade transition.MaskWipe— mask-based wipe transition.Reveal— reveal-style transition.TweenEffect— base for tween-driven effects.
Non-interactive visual elements (visuals that don't capture input).
Animation— animation playback element.Bullet— visual bullet-point graphic.ExpandingFrame— frame that resizes to fit its content.LabelBase— text-label base class.
Event-broadcasting tools for common Flash event patterns. Streamlines onEnterFrame handling for efficiency.
FrameEventBeacon— dispatches per-frameonEnterFrameevents to subscribers (single shared frame handler instead of per-clip).KeyBeacon— dispatches key-press events to subscribers.StageBeacon— dispatches stage-resize events to subscribers.
Layout arrangements that apply interchangeably to an array of objects. Like CSS Flexbox / Grid for AS2.
AbstractLayout— base class for layouts.Column— single-column layout.Grid— N×M grid layout.IArrangeable— interface for objects that can be arranged.Row— single-row layout.
External-asset loading with extras.
LoadQueue— sequential queue of load operations.PerformanceLoader— loader with bandwidth profiling and background-caching.
Media abstraction layer. Provides a common API across Flash's various media types (audio, video, images) so controls like a scrubber or universal media player can work uniformly.
AbstractMedia— base class for all media types.AudioManager— manages multiple audio streams (mixer-style).FLVMedia— Flash video (.flv) wrapper.Image— bitmap/JPG/PNG wrapper.LinearMedia— base for timeline-based media (audio, video).MP3— MP3 audio wrapper.SoundClip— simpleflash.media.Soundwrapper for triggered SFX.StaticMedia— base for non-timeline media (images).VideoClip— generic video wrapper.
Low-level routines for common tasks (functional-style array operations).
AbstractAnalysis— base class for analysis ops.Extract— extract a subset from a collection.Find— find an element in a collection.Iteration— generic iteration over a collection.Quantity— count operations.Run— apply a function to every element.Set— set operations (union, intersection, difference).
Generic project-foundation classes.
AbstractXMLProject— base class for XML-configuration-driven projects.
Shape primitives + style descriptors. Procedural drawing API.
AbstractShape— base class for procedural shapes.Backdrop— fullscreen background fill shape.FillStyle— fill style descriptor (color + alpha + gradient).LineStyle— stroke style descriptor.RectangleShape— procedurally-drawn rectangle.ShapeStyle— combined fill + line style.
Text-display utilities.
HidingDefaultText— text field that hides placeholder text on focus (like HTML'splaceholderattribute, before that pattern was native).
Light-weight tween system. Extensible easing of object properties.
FrameMotion— frame-based motion tween.FrameTween— frame-based property tween.Motion— time-based motion tween.MotionPath— tween along a path (uses senocular.Path).Move— simple move tween.PropertyTween— generic property-value tween.TweenBase— base class for all tweens.
Generic utilities.
GlobalHitTest— collision detection across nested timelines.Group— manages a logical group of movieclips.MovieClipStack— stack-based movieclip allocation/recycling.Timer—setInterval-based timer wrapper.
| Library | Path | Purpose | License |
|---|---|---|---|
| Robert Penner Easing | classes/com/robertpenner/easing/ |
Easing equations: Back, Bounce, Circ, Cubic, Elastic, Expo, Linear, Quad, Quart, Quint, Sine |
De-facto open (Penner published under BSD-like terms) |
| Senocular Path | classes/com/senocular/Path.as |
Path-following math utility (used by net.indivision.tween.MotionPath) |
No formal header; historically free use |
Indivision code imports these from Macromedia's Flash MX 2004 runtime:
mx.events.EventDispatcher— Flash's standard event dispatcher.mx.utils.Delegate— function-binding helper for settingthisin callbacks.mx.video.NCManager,mx.video.VideoPlayer— used bynet.indivision.media.FLVMedia.
These ship with the Flash IDE / Flash Player runtime; no additional install needed.
A scan of import statements in classes/net/indivision/ shows the framework only imports:
- Other
net.indivision.*modules com.senocular.Path(used bynet.indivision.tween.MotionPath)mx.*standard libraries listed above
com.robertpenner.* is bundled for availability to developers building on this codebase, but Indivision code itself doesn't import it.
Runnable demos for ~30 classes/concepts. Each in fla_examples/source/<package>/<DemoName>/<DemoName>.fla with compiled .swf output in fla_examples/deploy/. Packages with demos:
- arrange:
Axis,StageManager - control:
AnimatedButton,CustomButton,LabelButton,LinearButton,MenuBase,ScrollBar - data:
XMLConstruct - effect:
Fade,MaskWipe,Reveal - element:
Animation,ExpandingFrame,LabelBase - event:
KeyBeacon,StageBeacon - layout:
Grid - load:
LoadQueue,PerformanceLoader - media:
AudioManager,FLVMedia,MP3,SoundClip - operation:
operation(general demo) - shape:
RectangleShape - text:
HidingDefaultText - tween:
FrameMotion,FrameTween,Move,tween - util:
Group,Timer
AS2 is the strict superset of indivision-codebase-as1 (28 classes / 8 packages). New in AS2 vs AS1:
| Package | AS1 | AS2 added |
|---|---|---|
core |
— | AbstractDispatcher, AbstractMovieClip, MovieClipDispatcher |
data |
— | DataProviderProxy, XMLConstruct, XMLConstructNode |
effect |
— | AbstractEffect, Fade, MaskWipe, Reveal, TweenEffect |
layout |
— | AbstractLayout, Column, Grid, IArrangeable, Row |
load |
— | LoadQueue, PerformanceLoader |
operation |
— | AbstractAnalysis, Extract, Find, Iteration, Quantity, Run, Set |
project |
— | AbstractXMLProject |
text |
— | HidingDefaultText |
tween |
— | 7 classes (FrameMotion, FrameTween, Motion, MotionPath, Move, PropertyTween, TweenBase) |
arrange |
1 class (Position) |
+ 6 (Align, Axis, Boundary, Distribute, StageManager, StagePosition) |
media |
1 class (SoundClip) |
+ 8 (AbstractMedia, AudioManager, FLVMedia, Image, LinearMedia, MP3, StaticMedia, VideoClip) |
element |
2 classes | + 2 (Animation, ExpandingFrame) |
shape |
4 classes | + 2 (LineStyle, ShapeStyle) |
util |
3 classes | + 1 (GlobalHitTest) |
If you're starting new Flash work that needs an Indivision-style framework, use AS2 — AS1 is preserved for historical interest and for restoring legacy AS1-targeted projects.
To compile, you need Flash MX 2004 or later (Flash CS3-era recommended for the most-tested setup). Open any .fla from fla_examples/source/<package>/<DemoName>/. Classpath should include:
classes/
Publish Settings > Flash > ActionScript Version should be ActionScript 2.0.
For programmatic builds, use the mtasc (Motion-Twin ActionScript 2 Compiler) or Adobe's mxmlc (Flex SDK).
indivision/indivision-codebase-as1— AS1 predecessor (public).