Comunidad de diseño web y desarrollo en internet online

¿Cómo reducir Tecleo?

Citar            
MensajeEscrito el 05 Ene 2009 09:38 pm
Hola a todos.

Estoy escribiendo código para dibujar con AS3 un diagrama de Fases y creo recordar que había alguna forma para simplificar la escritura del código.
Me explico. Si tengo que repetir algo muchas veces, por ejemplo

dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
...


podía hacer algo como

-----{
.(--,--);
.(--,--);
.(--,--);
.(--,--);
.(--,--);
.(--,--);
}


Siendo sustituido "dFase.Graphics.lineTo" por el punto o algo similar.

el código siguiente dibuja un diagrama de fases de solubilidad parcial y como se puede apreciar, sería de mucha ayuda lo que os comento.
¿Tiene alguien idea de esto?.

Gracias de cualquier forma.
Joaquín

Código ActionScript :

var dFase:Sprite = new Sprite();

//cuadrícula, Líneas verticales medias (gris)
dFase.graphics.lineStyle(0.25, 0xeeeeee);
dFase.graphics.moveTo(5,0);
for (var ib:uint=0;ib<10;ib++){
   dFase.graphics.lineTo(ib*10+5,120);
   dFase.graphics.moveTo((ib+1)*10+5,0);
}
//Cuadricula, Líneas horizontale medias
dFase.graphics.moveTo(0,5);
for (var jb:uint=0;jb<12;jb++){
   dFase.graphics.lineTo(100,jb*10+5);
   dFase.graphics.moveTo(0,(jb+1)*10+5);
}
//cuadrícula, Líneas verticales (gris)
dFase.graphics.lineStyle(0.25, 0x7d7d7d);
dFase.graphics.moveTo(10,0);
for (var i:uint=1;i<10;i++){
   dFase.graphics.lineTo(i*10,120);
   dFase.graphics.moveTo((i+1)*10,0);
}
//Cuadricula, Líneas horizontale
dFase.graphics.moveTo(0,10);
for (var j:uint=1;j<12;j++){
   dFase.graphics.lineTo(100,j*10);
   dFase.graphics.moveTo(0,(j+1)*10);
}



//Línea de Solidus (verde)
dFase.graphics.lineStyle(1, 0x00ff00);
dFase.graphics.moveTo(0,0);
dFase.graphics.curveTo(5,50,10,60);
dFase.graphics.curveTo(35,60,70,60);
dFase.graphics.curveTo(100,35,100,20);

//Línea de Solvus (azul)
dFase.graphics.lineStyle(1, 0x0000ff);
dFase.graphics.moveTo(10,60);
dFase.graphics.curveTo(6,62,5,120);
dFase.graphics.moveTo(70,60);
dFase.graphics.curveTo(90,70,100,90);

//Recuadro (gris)
dFase.graphics.lineStyle(1, 0x7d7d7d);
dFase.graphics.drawRect(0,0,100,120);

//Línea de Liquidus (rojo)
dFase.graphics.lineStyle(1, 0xff0000);
dFase.graphics.moveTo(0,0);
dFase.graphics.curveTo(50,20,50,60);
dFase.graphics.moveTo(100,20);
dFase.graphics.curveTo(55,20,50,60);

//Remaches. Línea de Solidus (verde)
dFase.graphics.lineStyle(1, 0x00ff00);
dFase.graphics.moveTo(10,60);
dFase.graphics.lineTo(70,60);

//Línea de EUTÉTICA (Amarilla)
dFase.graphics.lineStyle(1, 0xfdfd00);
dFase.graphics.moveTo(50,60);
dFase.graphics.lineTo(50,120);


addChild(dFase);

Por JoaquinF

5 de clabLevel



 

msie7
Citar            
MensajeEscrito el 05 Ene 2009 10:14 pm
Nop, dibujar con el drawing API implica teclear bastante. Si usas figuras regulares, considera drawRect y drawCircle, un array de puntos es otra opción ya que dibujas una función

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Ene 2009 11:04 pm

JoaquinF escribió:

Hola a todos.

Estoy escribiendo código para dibujar con AS3 un diagrama de Fases y creo recordar que había alguna forma para simplificar la escritura del código.
Me explico. Si tengo que repetir algo muchas veces, por ejemplo

dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
dFase.Graphics.lineTo(--,--);
...


podía hacer algo como

-----{
.(--,--);
.(--,--);
.(--,--);
.(--,--);
.(--,--);
.(--,--);
}


podrias usar with

Código ActionScript :

with (this)
{
    x = 100;
    y = 150;
    width = 640;
    height = 480;
}

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 06 Ene 2009 05:50 pm
Otra es meter todos los puntos en un array y dibujarlos con un bucle.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 06 Ene 2009 09:57 pm
Gracias solisarg y Zah por vuestras sugerencias, las tendré en cuenta. Para el caso concreto que planteaba, la respuesta de master_of_puppetz es la que más se ajusta, de modo que no sabes cuanto te lo agradezco, el tiempo de tecleo que me ahorro lo dedicaré a otras cosas más interesantes.

A modo de ejemplo, os pongo el código resultante de aplicar la solución de master_of_puppetz. Funciona exactamente igual que el que os puse en el post con que inicié este tema.

Código ActionScript :

var dFase:Sprite = new Sprite();
with (dFase.graphics) {
   //cuadrícula, Líneas verticales medias (gris)
   lineStyle(0.25, 0xeeeeee);
   moveTo(5,0);
   for (var ib:uint=0; ib<10; ib++) {
      lineTo(ib*10+5,120);
      moveTo((ib+1)*10+5,0);
   }
   //Cuadricula, Líneas horizontale medias
   moveTo(0,5);
   for (var jb:uint=0; jb<12; jb++) {
      lineTo(100,jb*10+5);
      moveTo(0,(jb+1)*10+5);
   }
   //cuadrícula, Líneas verticales (gris)
   lineStyle(0.25, 0x7d7d7d);
   moveTo(10,0);
   for (var i:uint=1; i<10; i++) {
      lineTo(i*10,120);
      moveTo((i+1)*10,0);
   }
   //Cuadricula, Líneas horizontale
   moveTo(0,10);
   for (var j:uint=1; j<12; j++) {
      lineTo(100,j*10);
      moveTo(0,(j+1)*10);
   }



   //Línea de Solidus (verde)
   lineStyle(1, 0x00ff00);
   moveTo(0,0);
   curveTo(5,50,10,60);
   curveTo(35,60,70,60);
   curveTo(100,35,100,20);

   //Línea de Solvus (azul)
   lineStyle(1, 0x0000ff);
   moveTo(10,60);
   curveTo(6,62,5,120);
   moveTo(70,60);
   curveTo(90,70,100,90);

   //Recuadro (gris)
   lineStyle(1, 0x7d7d7d);
   drawRect(0,0,100,120);

   //Línea de Liquidus (rojo)
   lineStyle(1, 0xff0000);
   moveTo(0,0);
   curveTo(50,20,50,60);
   moveTo(100,20);
   curveTo(55,20,50,60);

   //Remaches. Línea de Solidus (verde)
   lineStyle(1, 0x00ff00);
   moveTo(10,60);
   lineTo(70,60);

   //Línea de EUTÉTICA (Amarilla)
   lineStyle(1, 0xfdfd00);
   moveTo(50,60);
   lineTo(50,120);
}

addChild(dFase);


Como podéis apreciar, el ahoro es significativo. Cierto es que tal vez sea menos comprensible, pero conocida la Palabra Clave "with" esa contrariedad se ve ampliamente recompensada.

Gracias de nuevo a todos por vuestra ayuda.
Joaquín

Por JoaquinF

5 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Ene 2009 10:15 pm
Hola

Tb podes usar un editor como Flex Builder que tiene autocompletado (creo q el flashdevelop tambien), de esa manera te arroras de escribir mucho y no perdes legibilidad en el codigo (ademas de tener cientos de funcionalidades mas)


Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 07 Ene 2009 10:48 am

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 07 Ene 2009 03:58 pm
Ciertamente esto de los snippet con el FlashDevelop es una ayuda genial. A partir de ahora visitaré menos la ayuda "F1" para terminar de concretar la sintaxis, con lo también ahorraré tiempo.
Muchas gracias alfathenus y Zah.
Un saludo.
Joaquín.

Por JoaquinF

5 de clabLevel



 

msie7

 

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