mas_bass
04-20-2010, 03:59 PM
Hi all,
I have the following variables inside an AS2 script
var data_a = 19;
var data_b = 20;
var data_c = 27;
var data_d = 24;
var data_e = 10;
var data_f = 5;
var data_g = 24;
var data_h = 20;
var data_i = 19;
var day_b = "Sunday"
var day_c = "Monday"
var day_d = "Tuesday"
var day_e = "Wednesday"
var day_f = "Thursday"
var day_g = "Friday"
var day_h = "Saturday"
as I need to load them from an external file, I have replaced them with
varReceiver = new LoadVars();
varReceiver.load("data.txt");
varReceiver.onLoad = function(){
trace(this.data_a);
trace(this.data_b);
};
and I put all the above variables in a data.txt file as follows:
data_a=19&data_b=20&data_c=27&data_d=24&data_e=10&data_f=5&data_g=24&data_h=20&data_i=19&day_b=Sunday&day_c=Monday&day_d=Tuesday&day_e=Wednesday&day_f=Thursday&day_g=Friday&day_h=Saturday
when I test the movie the trace window shows data_a and data_b but the rest of the script does not work and gives undefined everywhere. It seems like the variables are properly loaded but the rest of the script cannot use them...
var dataY:Array = new Array(data_a, data_b, data_c, data_d, data_e, data_f, data_g, data_h, data_i);
var dayArray = new Array(day_b, day_c, day_d, day_e, day_f, day_g, day_h);
var limitY = 0;
var miniY = dataY[0];
for (var i in dataY) {
limitY = Math.max(limitY, dataY[i]);
miniY = Math.min(miniY, dataY[i]);
}
limitY += 40;
miniY -= 40;
var sizeY = 300;
var multY = sizeY/(limitY-miniY);
makeChart();
function makeChart() {
var contentMC = _root.createEmptyMovieClip("contentMC", _root.getNextHighestDepth());
contentMC._x = 500;
contentMC._y = 100;
drawAxis(contentMC,600,sizeY);
makeTxtBox(contentMC,limitY,-10,300,"right",0x000000);
makeTxtBox(contentMC,miniY,-10,20,"right",0x000000);
var chartMC = contentMC.createEmptyMovieClip("chartMC", contentMC.getNextHighestDepth());
chartMC.lineStyle(2,0x000000,20);
chartMC.moveTo(25,(-(dataY[0]-miniY)*multY));
for (var i = 1; i<dataY.length-1; i++) {
var point = makeMark(chartMC, i*65, -((dataY[i]-miniY)*multY));
chartMC.lineTo(point._x,point._y);
var infoTxt = dayArray[i-1]+newline+dataY[i];
var overunder = (i%2 == 1) ? 40 : -10;
makeTxtBox(chartMC,infoTxt,(i*65),((dataY[i]-miniY)*multY)+overunder,"center",0xFFFFFF);
}
chartMC.lineTo(dataY.length*65-25,-((dataY[dataY.length-1]-miniY)*multY));
}
function makeMark(mc, x1, y1) {
var markMC = mc.createEmptyMovieClip("markMC"+mc.getNextHighestDepth(), mc.getNextHighestDepth());
markMC.lineStyle(3,0xFF0000);
markMC.beginFill(0xFF0000,100);
markMC.moveTo(-1,1);
markMC.lineTo(1,1);
markMC.lineTo(1,-1);
markMC.lineTo(-1,-1);
markMC.lineTo(-1,1);
markMC.endFill();
markMC._x = x1;
markMC._y = y1;
return markMC;
}
function drawAxis(mc, x2, y2) {
mc.lineStyle(2,0x000000,100);
mc.moveTo(0,0);
mc.lineTo(0,-y2);
mc.moveTo(0,0);
mc.lineTo(x2,0);
mc._x += 50;
mc._y += y2+50;
}
function makeTxtBox(mc, infoTxt, posX, posY, align, color) {
var my_fmt:TextFormat = new TextFormat();
my_fmt.color = 0x000000
my_fmt.font = "Verdana";
my_fmt.size = 12;
my_fmt.align = "center";
var my_txt = mc.createTextField("my_txt", mc.getNextHighestDepth(), posX, -posY, 0, 0);
my_txt.autoSize = align;
my_txt.multiline = true;
my_txt.text = infoTxt;
my_txt.setTextFormat(my_fmt);
}
I have the following variables inside an AS2 script
var data_a = 19;
var data_b = 20;
var data_c = 27;
var data_d = 24;
var data_e = 10;
var data_f = 5;
var data_g = 24;
var data_h = 20;
var data_i = 19;
var day_b = "Sunday"
var day_c = "Monday"
var day_d = "Tuesday"
var day_e = "Wednesday"
var day_f = "Thursday"
var day_g = "Friday"
var day_h = "Saturday"
as I need to load them from an external file, I have replaced them with
varReceiver = new LoadVars();
varReceiver.load("data.txt");
varReceiver.onLoad = function(){
trace(this.data_a);
trace(this.data_b);
};
and I put all the above variables in a data.txt file as follows:
data_a=19&data_b=20&data_c=27&data_d=24&data_e=10&data_f=5&data_g=24&data_h=20&data_i=19&day_b=Sunday&day_c=Monday&day_d=Tuesday&day_e=Wednesday&day_f=Thursday&day_g=Friday&day_h=Saturday
when I test the movie the trace window shows data_a and data_b but the rest of the script does not work and gives undefined everywhere. It seems like the variables are properly loaded but the rest of the script cannot use them...
var dataY:Array = new Array(data_a, data_b, data_c, data_d, data_e, data_f, data_g, data_h, data_i);
var dayArray = new Array(day_b, day_c, day_d, day_e, day_f, day_g, day_h);
var limitY = 0;
var miniY = dataY[0];
for (var i in dataY) {
limitY = Math.max(limitY, dataY[i]);
miniY = Math.min(miniY, dataY[i]);
}
limitY += 40;
miniY -= 40;
var sizeY = 300;
var multY = sizeY/(limitY-miniY);
makeChart();
function makeChart() {
var contentMC = _root.createEmptyMovieClip("contentMC", _root.getNextHighestDepth());
contentMC._x = 500;
contentMC._y = 100;
drawAxis(contentMC,600,sizeY);
makeTxtBox(contentMC,limitY,-10,300,"right",0x000000);
makeTxtBox(contentMC,miniY,-10,20,"right",0x000000);
var chartMC = contentMC.createEmptyMovieClip("chartMC", contentMC.getNextHighestDepth());
chartMC.lineStyle(2,0x000000,20);
chartMC.moveTo(25,(-(dataY[0]-miniY)*multY));
for (var i = 1; i<dataY.length-1; i++) {
var point = makeMark(chartMC, i*65, -((dataY[i]-miniY)*multY));
chartMC.lineTo(point._x,point._y);
var infoTxt = dayArray[i-1]+newline+dataY[i];
var overunder = (i%2 == 1) ? 40 : -10;
makeTxtBox(chartMC,infoTxt,(i*65),((dataY[i]-miniY)*multY)+overunder,"center",0xFFFFFF);
}
chartMC.lineTo(dataY.length*65-25,-((dataY[dataY.length-1]-miniY)*multY));
}
function makeMark(mc, x1, y1) {
var markMC = mc.createEmptyMovieClip("markMC"+mc.getNextHighestDepth(), mc.getNextHighestDepth());
markMC.lineStyle(3,0xFF0000);
markMC.beginFill(0xFF0000,100);
markMC.moveTo(-1,1);
markMC.lineTo(1,1);
markMC.lineTo(1,-1);
markMC.lineTo(-1,-1);
markMC.lineTo(-1,1);
markMC.endFill();
markMC._x = x1;
markMC._y = y1;
return markMC;
}
function drawAxis(mc, x2, y2) {
mc.lineStyle(2,0x000000,100);
mc.moveTo(0,0);
mc.lineTo(0,-y2);
mc.moveTo(0,0);
mc.lineTo(x2,0);
mc._x += 50;
mc._y += y2+50;
}
function makeTxtBox(mc, infoTxt, posX, posY, align, color) {
var my_fmt:TextFormat = new TextFormat();
my_fmt.color = 0x000000
my_fmt.font = "Verdana";
my_fmt.size = 12;
my_fmt.align = "center";
var my_txt = mc.createTextField("my_txt", mc.getNextHighestDepth(), posX, -posY, 0, 0);
my_txt.autoSize = align;
my_txt.multiline = true;
my_txt.text = infoTxt;
my_txt.setTextFormat(my_fmt);
}