Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/09/2007, 01:46
clinisbut
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: [AS2] Eventos y parametros

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.