Comunidad de diseño web y desarrollo en internet online

prototypes

Citar            
MensajeEscrito el 29 Ago 2007 08:39 am
muy buenas tod@s. para no alargarme os pego un codigo. el problema que tengo es que creo una serie de objetos MC, los dibuja y hace todo bien, menos asignarles el prototipo y no se donde esta el error. si pudierais echarle un vistazo al codigo y decirme onde la cago, os lo agradeceria mucho.

Código :

x0=50;
y0=50;
anchura=30;
altura=70;
var cod_dec:Number;
var color:String="0x";
var rango:Number=257;
//creacion de los rectangulos
for (i=0;i<6;i++)
{
   for (j=0;j<3;j++)
   {
      cod_dec=Math.floor(Math.random() * rango);
      color+=cod_dec.toString(16);
   }
   //trace(color);
   this.createEmptyMovieClip(("prueba"+i),getNextHighestDepth());
   with (this["prueba"+i])
   {
      lineStyle(1, color, 50);
      beginFill(color, 100);
      moveTo(x0, y0);
      lineTo((x0+anchura),y0);
      lineTo((x0+anchura),(y0+altura));
      lineTo(x0, (y0+altura));
      lineTo(x0, y0);
      endFill();
      casillas();
   }
//tambien he probado otras opciones fuera del with (que fue lo ultimo que he probado):
// eval("pueba"+i).casillas();
// this["prueba"+i].casillas();
// _root["prueba"+i].casillas();

   x0+=anchura;
   color="0x";
   trace(this["prueba"+i]._height);
   trace(this["prueba"+i]._name);
}
//prototipos
MovieClip.prototype.casillas=function()
{
   this.name;
   this.onPress=function()
   {
      trace("hola");
      this._x=_xmouse;
   }
   this.onRelease=function()
   {
      trace("soltar");
   }
   this.onRollOver=function()
   {
      trace("sobre");
   }
   
}


muchas gracias de antemano
un saludo
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 29 Ago 2007 03:40 pm
tuve un error en el codigo, por la cantidad de pruebas que estuve haciendo. aqui os pego el nuevo codigo y lo que me da de salida. espero realmente que alguien sea capaz de ver donde estoy cometiendo el error.

codigo programa

Código :

//variables
/////////////////////////
//declaro esta cantidad de variables para que en un futuro, esto pueda ser una funcion
//a la que le pase los parametros de inicio en x e y, la anchura y altura de los 
//rectangulos, el rango de color en el que debe de ser aleatorio, etc...
x0=50;
y0=50;
anchura=30;
altura=70;
var cod_dec:Number;
var color:String="0x";
var rango:Number=257;
//for para el numero de rectangulos que deseo crear (6)
for (i=0;i<6;i++)
{
   //for para generar 3 numeros aleatorios entre 0 y 256, pasarlos a hexadecimal
   //y guardarlos todos juntos en una cadena que guarda el codigo del color completo
   for (j=0;j<3;j++)
   {
      cod_dec=Math.floor(Math.random() * rango);
      color+=cod_dec.toString(16);
   }
   trace(color);
   //creacion de un movieclip que contendra al rectangulo
   this.createEmptyMovieClip("prueba"+i,getNextHighestDepth());
   //creacion de la forma del rectagulo y relleno del mismo asociado al movieclip
   with (this["prueba"+i])
   {
      lineStyle(1, color, 50);
      beginFill(color, 100);
      moveTo(x0, y0);
      lineTo((x0+anchura),y0);
      lineTo((x0+anchura),(y0+altura));
      lineTo(x0, (y0+altura));
      lineTo(x0, y0);
      endFill();
   }
   //actualizacion del punto de inicio x del siguiente rectangulo para que no 
   //los sobreescriba uno sobre otro
   x0+=(anchura);
   //reseteo de la variable que contiene el codigo de color
   color="0x";
   //impresion de valores del movieclip creado
   trace(this["prueba"+i]._name);
   trace(this["prueba"+i]._x);
   trace(this["prueba"+i]._height);
   //asociacion del movieclip con el prototipo que se declara abajo
   this["prueba"+i].casillas();
}
//prueba con nombre completo de asociacion a prototipo
prueba0.casillas();
//prototipo de comportamiento estandar de rectangulo
MovieClip.prototype.casillas=function()
{
   //al presionar que de como salida hola y que su posicion X se ajuste a la X 
   //del puntero del raton
   this.onPress=function()
   {
      trace("hola");
      this._x=_xmouse;
   }
   //al soltar el boton del raton, que muestre "soltar" en el panel de salida
   this.onRelease=function()
   {
      trace("soltar");
   }
   //al pasar por encima que escriba en el panel de salida "sobre"
   this.onRollOver=function()
   {
      trace("sobre");
   }
}



salida

Código :

0x207dc9
prueba0
0
71
0xd1e54
prueba1
0
71
0xd0e1ca
prueba2
0
71
0x9cc888
prueba3
0
71
0x5e5ebb
prueba4
0
71
0x5caead
prueba5
0
71

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.