Difference between revisions of "Bar-graph.as"
m |
m ({{as}}) |
||
(30 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | // Bar graph example{{as}} | ||
create.barGraph = function( name, layer ) { | create.barGraph = function( name, layer ) { | ||
+ | // Create main symbol with a graph and mask symbol within | ||
this.createEmptyMovieClip( name, layer ); | this.createEmptyMovieClip( name, layer ); | ||
− | var | + | var sym = this[name]; |
+ | sym.attachMovie( 'square', 'mask', 0 ); | ||
+ | sym.createEmptyMovieClip( 'graph', 1 ); | ||
+ | var graph = sym; // should be set to sym.graph but masking not working | ||
// These should be sent in create, but that's not supported yet | // These should be sent in create, but that's not supported yet | ||
Line 10: | Line 15: | ||
graph.bars = 50; | graph.bars = 50; | ||
+ | // Define current buffer and position in buffer | ||
graph.curBuf = 0; | graph.curBuf = 0; | ||
graph.curBar = graph.bars - 1; | graph.curBar = graph.bars - 1; | ||
+ | |||
+ | // Set mask to display size | ||
+ | //sym.mask._x = sym.mask._y = 0; | ||
+ | //sym.mask._width = graph.barSpacing * graph.bars; | ||
+ | //sym.mask._height = _root.height; | ||
+ | //graph.setMask( sym.mask ); | ||
// Make two bar-graph buffers of n-bars | // Make two bar-graph buffers of n-bars | ||
Line 18: | Line 30: | ||
graph.createEmptyMovieClip( 'buf' + i, i ); | graph.createEmptyMovieClip( 'buf' + i, i ); | ||
var buf = graph[ 'buf' + i ]; | var buf = graph[ 'buf' + i ]; | ||
− | |||
− | |||
buf._x = i * graph.barSpacing * graph.bars; | buf._x = i * graph.barSpacing * graph.bars; | ||
buf._y = 0; | buf._y = 0; | ||
Line 28: | Line 38: | ||
var bar = buf[ 'bar' + j ]; | var bar = buf[ 'bar' + j ]; | ||
bar.lineStyle( 0, 0, 0 ); | bar.lineStyle( 0, 0, 0 ); | ||
− | + | bar.beginFill( graph.barColour, 100 ); | |
− | bar.beginFill( | ||
bar.moveTo( 0, 0 ); | bar.moveTo( 0, 0 ); | ||
− | bar.lineTo( 0, - | + | bar.lineTo( 0, -1 ); |
− | bar.lineTo( | + | bar.lineTo( 1, -1 ); |
− | bar.lineTo( | + | bar.lineTo( 1, 0 ); |
bar.lineTo( 0, 0 ); | bar.lineTo( 0, 0 ); | ||
bar.endFill(); | bar.endFill(); | ||
Line 47: | Line 56: | ||
// Scroll both buffers | // Scroll both buffers | ||
+ | // - and switch to right when it scrolls off left | ||
var size = graph.barSpacing * graph.bars; | var size = graph.barSpacing * graph.bars; | ||
− | + | graph.buf0._x -= graph.barSpacing; | |
− | + | if ( graph.buf0._x < -size ) graph.buf0._x += 2 * size; | |
− | + | graph.buf1._x -= graph.barSpacing; | |
− | + | if ( graph.buf1._x < -size ) graph.buf1._x += 2 * size; | |
− | |||
// Update the current bar and buffer pointers | // Update the current bar and buffer pointers | ||
− | if ( 0 == graph.curBar = | + | if ( 0 == graph.curBar = ++graph.curBar % graph.bars ) graph.curBuf ^= 1; |
// Update the height value at the current bar | // Update the height value at the current bar | ||
− | var | + | var bar = graph[ 'buf' + graph.curBuf ][ 'bar' + graph.curBar ]; |
− | |||
bar._height = value; | bar._height = value; | ||
}; | }; | ||
− | return | + | return sym; |
}; | }; |
Latest revision as of 09:43, 14 March 2009
// Bar graph exampleTemplate:As create.barGraph = function( name, layer ) {
// Create main symbol with a graph and mask symbol within this.createEmptyMovieClip( name, layer ); var sym = this[name]; sym.attachMovie( 'square', 'mask', 0 ); sym.createEmptyMovieClip( 'graph', 1 ); var graph = sym; // should be set to sym.graph but masking not working
// These should be sent in create, but that's not supported yet graph.barColour = 0x00ff00; graph.barWidth = 5; graph.barSpacing = 10; graph.bars = 50;
// Define current buffer and position in buffer graph.curBuf = 0; graph.curBar = graph.bars - 1;
// Set mask to display size //sym.mask._x = sym.mask._y = 0; //sym.mask._width = graph.barSpacing * graph.bars; //sym.mask._height = _root.height; //graph.setMask( sym.mask );
// Make two bar-graph buffers of n-bars for ( var i = 0; i < 2; i++ ) {
graph.createEmptyMovieClip( 'buf' + i, i ); var buf = graph[ 'buf' + i ]; buf._x = i * graph.barSpacing * graph.bars; buf._y = 0;
// Create bars in this buffer for ( var 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.barSpacing; bar._y = _root.height; bar._width = graph.barWidth; bar._height = 0; } }
// Method to scroll the graph and insert a value graph.rotate = function( value ) {
// Scroll both buffers // - and switch to right when it scrolls off left var size = graph.barSpacing * graph.bars; graph.buf0._x -= graph.barSpacing; if ( graph.buf0._x < -size ) graph.buf0._x += 2 * size; graph.buf1._x -= graph.barSpacing; if ( graph.buf1._x < -size ) graph.buf1._x += 2 * size;
// Update the current bar and buffer pointers if ( 0 == graph.curBar = ++graph.curBar % graph.bars ) graph.curBuf ^= 1;
// Update the height value at the current bar var bar = graph[ 'buf' + graph.curBuf ][ 'bar' + graph.curBar ]; bar._height = value;
};
return sym; };