Skip to content

About

The Indivision Codebase for Adobe Flash AS 2.0 is a collection of light-weight, basic user interface, layout, loading, media and data actionscript classes.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Indivision Codebase for Adobe Flash AS 2.0

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).

Status

  • 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.

Layout

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

The Indivision framework (classes/net/indivision/)

80 classes across 17 packages.

net.indivision.arrange

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).

net.indivision.control

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, extends MovieClipDispatcher.
  • ScrollBar — scrollbar component, extends MovieClipDispatcher.
  • Scrub, IScrubbable — media-style scrubber control + interface for scrubbable targets.

net.indivision.core

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.

net.indivision.data

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.

net.indivision.debug

Debug utilities.

  • Trace — wrapper around trace() with optional formatting (timestamps, source labels).
  • JavaAlert — fires getURL("javascript:alert(...)") from Flash for browser-side debug alerts (useful when Flash debugger isn't available).

net.indivision.effect

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.

net.indivision.element

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.

net.indivision.event

Event-broadcasting tools for common Flash event patterns. Streamlines onEnterFrame handling for efficiency.

  • FrameEventBeacon — dispatches per-frame onEnterFrame events to subscribers (single shared frame handler instead of per-clip).
  • KeyBeacon — dispatches key-press events to subscribers.
  • StageBeacon — dispatches stage-resize events to subscribers.

net.indivision.layout

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.

net.indivision.load

External-asset loading with extras.

  • LoadQueue — sequential queue of load operations.
  • PerformanceLoader — loader with bandwidth profiling and background-caching.

net.indivision.media

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 — simple flash.media.Sound wrapper for triggered SFX.
  • StaticMedia — base for non-timeline media (images).
  • VideoClip — generic video wrapper.

net.indivision.operation

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).

net.indivision.project

Generic project-foundation classes.

  • AbstractXMLProject — base class for XML-configuration-driven projects.

net.indivision.shape

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.

net.indivision.text

Text-display utilities.

  • HidingDefaultText — text field that hides placeholder text on focus (like HTML's placeholder attribute, before that pattern was native).

net.indivision.tween

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.

net.indivision.util

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.

Dependencies

Bundled (in classes/com/)

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

Imported but not bundled (Flash standard libraries)

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 setting this in callbacks.
  • mx.video.NCManager, mx.video.VideoPlayer — used by net.indivision.media.FLVMedia.

These ship with the Flash IDE / Flash Player runtime; no additional install needed.

Indivision code's actual third-party imports

A scan of import statements in classes/net/indivision/ shows the framework only imports:

  • Other net.indivision.* modules
  • com.senocular.Path (used by net.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.

FLA examples (fla_examples/)

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

AS1 vs AS2

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.

Building / using

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).

Related repos

About

The Indivision Codebase for Adobe Flash AS 2.0 is a collection of light-weight, basic user interface, layout, loading, media and data actionscript classes.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Contributors

Languages