Oops, just realized that when running my code in Flash 8 nothing shows up -
because the drawing is just outside the bounds of the stage.
After line 52 or so
canvas._x = i;
just add
canvas._y = canvas._height;
Find the corrected code below.
hth
--------------
Andreas Weber
motiondraw.com
temperatureValues = new Array();
// create some random temperature data
for(var i= 0; i<400; i++){
lastVal = i ? temperatureValues[i-1] : 50;
if(lastVal > 100){
c = -1;
}else if(lastVal < 0){
c = 1;
}else{
c = Math.random() > 0.5 ? 1 : -1;
}
temperatureValues[i] = lastVal + c;
}
neutralColor = 0x006666;
coldColor = 0x66FFFF;// temperature = 0
hotColor = 0xFF0000;// temperature = 100
hotColdRange = colorRange(coldColor, hotColor, 100);
drawGraph();
function drawGraph(){
for(var i=0, len=temperatureValues.length; i<len; i++){
canvas =
this.createEmptyMovieClip('canvas'+i,this.getNextHighestDepth());
// highest temperature: v = 255
// lowest temperature: v = 0
// for this sample we use a temperature range from 0 to 100
temperatureRange = 100;
v = temperatureValues[i] * (255 / temperatureRange);
ratios = [0, v, 255];
colors = [neutralColor,
hotColdRange[Math.floor(temperatureValues[i])],neutralColor];
alphas = [100, 100, 100];
// more graph, less 'borealis'
//ratios = [0, v-30, v, v+30, 255];
//colors = [neutralColor,
neutralColor,hotColdRange[Math.floor(temperatureValues[i])], neutralColor,
neutralColor];
//alphas = [100, 100, 100, 100, 100];
matrix = {a:100, b:0, c:0, d:0, e:100, f:0, g:100, h:100, i:1};
matrix = {matrixType:"box", x:0, y:0, w:100, h:100, r:0};
canvas.beginGradientFill("linear", colors, alphas, ratios,
matrix);
canvas.lineTo(100, 0);
canvas.lineTo(100, 1);
canvas.lineTo(0, 1);
canvas.lineTo(0, 0);
canvas.endFill();
canvas._rotation = -90;
canvas._x = i;
canvas._y = canvas._height;
}
}
function colorRange(c1, c2, n) {
var c1 = {r:(c1 & 0xFF0000) >> 16, g:(c1 & 0x00FF00) >> 8, b:c1
&
0x0000FF};
var c2 = {r:(c2 & 0xFF0000) >> 16, g:(c2 & 0x00FF00) >> 8, b:c2
&
0x0000FF};
var r = (c2.r-c1.r)/(n-1);
var g = (c2.g-c1.g)/(n-1);
var b = (c2.b-c1.b)/(n-1);
var color_arr = new Array();
for(var i=0, len=n; i<len; i++){
color_arr[i] = ((c1.r+i*r) << 16) + ((c1.g+i*g) << 8) +
(c1.b+i*b);
}
return color_arr;
}
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders