Bar-graph.as

From Organic Design wiki
Revision as of 07:45, 25 March 2006 by Nad (talk | contribs) (Make into a proper importable symbol)

create.barGraph = function( name, layer ) {

this.createEmptyMovieClip( name, layer ); graph = this[name];

// These should be sent in create, but that's not supported yet graph.barColour = 0x00ff00; graph.barWidth = 5; graph.barSpacing = 10; graph.bars = 50;

graph.curBuf = 0; graph.curBar = 0;

// Make two bar-graph buffers of n-bars for ( var i = 0; i < 1; i++ ) {

graph.createEmptyMovieClip( 'buf' + i, i ); var buf = graph[ 'buf' + i ]; buf._width = graph.barSpacing * graph.bars; buf._height = height; buf._x = i * width; buf._y = 0;

// Create bars in this buffer for ( j = 0; j < graph.bars; j++ ) { buf.createEmptyMovieClip( 'bar' + j, j ); var bar = buf[ 'bar' + j ]; bar.lineStyle( 0, 0, 0 ); bar.beginFill( graph.barColour, 100 ); bar.moveTo( 0, 0 ); bar.lineTo( 0, 1 ); bar.lineTo( 1, 1 ); bar.lineTo( 1, 0 ); bar.lineTo( 0, 0 ); bar.endFill(); bar._x = j * graph.bar bar._y = _root.height; bar._width = graph.barWidth; bar._height = _root.height / 2; } }

// Method to scroll the graph and insert a value graph.rotate = function( value ) {

// Scroll both buffers for ( var i = 0; i < 1; i++ ) { var buf = this[ 'buf' + i ]; buf._x -= this.barSpacing; if ( buf._x < -this._width ) buf._x += 2 * this._width; }

// Update the current bar and buffer pointers if ( ( ++this.curBar % this.bars ) == 0 ) this.curBuf ^= 1;

// Update the height value at the current bar this[ 'buf' + this.curBuf ][ 'bar' + this.curBar ]._height = value;

} return graph; }