Skip to content

indivision/indivision-codebase-as2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

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

Watchers

Forks

Contributors