Ups... quizá olvidé comentar que todo esto se ejecuta dentro de una función...
He probado a declarar punto tal como indicas y todo el código parece que pierda la referencia al "punto"...
Paso la función al completo, a ver si no he comentado algo que fuera importante...
Esto es el codigo que se ejecuta en el frame.
Código:
//Definimos las variables
var max_valor; //Máximo valor posible
var min_valor; //Mínimo valor posible
var diferencia;
var offset_valor;
var offset_y;
var offset_x;
var DIVISIONES_Y = 4;
var DIVISIONES_X = 7;
//Dimensiones
var PAD_X = 30;
var PAD_Y = 25;
var HEIGHT = 70;
var WIDTH = 600;
var COLOR_GRAELLA = 0x000000;
var COLOR_GRAELLA_2 = 0xEEEEEE;
var COLOR_VALOR = 0x33CC33;
var punto:MovieClip; //Un movieclip
var valores = new Array();
var max_valor = 0;
var min_valor = 0;
//carga_variables();
valores = Array(1,2,3,4,5,6);
draw_ejes( valores ); //Función que dibuja los ejes de la grafica (no la incluyo)
draw_valores( valores );
Y esto es la funcion draw_valores que incluye el codigo que me da problemas
Código:
function draw_valores( valores )
{
this.createEmptyMovieClip('grafica', 2);
grafica._x = PAD_X;
grafica._y = PAD_Y;
last_x = 0;
last_y = 0;
for( i=DIVISIONES_X-1; i>=0; i-- )
{
punto = attachMovie("punto", "punto_"+i, 3+i);
punto._x = PAD_X*2 + (i*offset_x);
punto._y = ( (HEIGHT-(HEIGHT/DIVISIONES_Y))/diferencia ) * valores[i];
// Valor_a_dibujar X ( escala====( ESPACIO_DIBUJABLE/diferencia ) )
//Dibujamos la línea que une los puntos solo si i>0
if( i<(DIVISIONES_X-1) )
{
grafica.lineStyle( 4, COLOR_VALOR );
grafica.moveTo( last_x-PAD_X, -1*last_y + HEIGHT );
grafica.lineTo( punto._x-PAD_X, -1*punto._y + HEIGHT );
}
last_x = punto._x;
last_y = punto._y;
punto.onRollOver = function()
{
var nombre:String = this._name;
var num:Number = nombre.substr(nombre.lastIndexOf('_')+1);
trace( nombre ); //UNDEFINED!!!
this._xscale = 200;
this._yscale = 200;
}
punto.onRollOut = function()
{
this._xscale = 100;
this._yscale = 100;
}
punto._y = HEIGHT - punto._y + PAD_Y; //Esta línea invierte la gráfica
//Ponemos un valor
_root.createTextField( 'leyenda_b_'+i, 10+i, punto._x, punto._y, 20,20 );
eval('_root.leyenda_b_'+i).text = valores[i];
eval('_root.leyenda_b_'+i).selectable = false;
}
}
No pretendo ni mucho menos que nadie me acabe el script, simplemente necesito sabe donde me equivoco en mi razonamiento, ayuda que no consigo encontrar por ningún lado (léase googleando y buscando en el foro).
Muchas gracias.