Comunidad de diseño web y desarrollo en internet online

Evitar decimales en las imagenes del escenario de flash

Citar            
MensajeEscrito el 08 Ago 2008 11:40 am
Estoy haciendo un juego con imagenes muy pequeñas, y quiero que al ponerlas en el escenario me queden es una posicion que sea un numero entero, sin decimales.

Por ejemplo, acabo de poner una imagen y me se ha quedado en:
X: 128.4
Y: 96.7
y lo que quiero es que automaticamente me se pongan en esta posicion:
X: 127.0
Y: 97.0

Hay algna forma de hacerlo?

Gracias.

Pd: trabajo con flash CS3

Porfa, no me contesten que deveria trabajar con codigo y no al escenario, por que cada vez que hago preguntas sobre dreamweaver, flash y otros me responden eso y cabrea un poco. Si no saveis la respuesta no contesteis.

Por GameOver

5 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 08 Ago 2008 12:19 pm
Aunque cabree un poco las respuestas que te dan las personas, son las respuestas correctas, si ves que la misma respuesta te la dan muchas veces, debe ser porque es verdad, no porque la gente no conozca la "verdadera" respuesta.

Pues te respondo lo mismo que te han dicho, que si trabajaras con código las exactitudes son impecables, te lo puedo asegurar.

Pero si vas a trabajar desde el escenario tendrás que hacer estos pasos, que muchas veces no son 100% efectivos: Cuando insertes una imagen presiona CTRL + 1 para que tu flash se visualice al 100% de zoom, rectifica la posición de la imagen quitando los decimales, bueno pues la "mayoría" de las veces que muevas tu imagen con el mouse con el zoom al 100% tu imagen se ubicará en una posición con enteros, pero te aclaro que no el 100% de las veces. Si quiseras asegurarte de que se va a posicionar siempre en coordenadas enteras, entonces mueve la imagen con las teclas de dirección, estas moverán la imagen cada un píxel y si presionas SHIFT la moverán cada 10 píxeles. Todo esto si tienes el flash al 100% de zoom.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 08 Ago 2008 12:36 pm
Haciendolo desde el escenario, puedo poner las imagenes, y solo tengo de cambiar las cordenadas a una cifra entera "cosa que me gustaria que fuera automatica", pero si tengo de hacerlo desde codigo, aparte de tener de poner todas las cordenadas una por una, ( no solo asegurarme de que sea entera como lo hacia desde el escenario ), tengo que poner de donde cojer la imagen, mirar en el escenario la cordenada exacta donder me gustaria ponerlo uno por uno, etc...

ya se que seria muuuuucho mas preciso, pero tardaria mucho mas.

sobre la respuesta: haciendolo con el mouse como has dicho no queda el 100% de las vezes centrado, y con las teclas de direccion no me quitan los decimales, solo que si estava en 12.6 me lo mueve a 13.6

Gracias de todas formas.

Por GameOver

5 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 08 Ago 2008 01:15 pm
Mira con las teclas de dirección si tienes el flash a 100% con CTRL + 1, siempre que la imagen en un inicio tenga un entero te la moverá en enteros.

Respecto a tu comentario:

ya se que seria muuuuucho mas preciso, pero tardaria mucho mas.


Mira el siguiente código:

Código :

var personajes:Array = new Array("pepe.jpg", "maria.jpg", "jose.jpg");
var pers:MovieClip;

for(var i:Number = 0; i < personajes.length; i++){

    pers = this.createEmptyMovieClip("pers" + i, i);
    pers._x = Math.round(Stage.width / (personajes.length + 1)) * (i + 1);
    pers.loadMovie("images/" + personajes[i]);

}


Lo que hace es situar tres personajes en la escena a igual distancia uno de otro, si por casualidad cambio el tamaño de mi escena, porque me hace falta más grande, el código seguirá funcionando, no tendré que ir a mover a los personajes y ponerle coordenadas exactas, ya que el código hace ese trabajo por mi, eso ni que decir si quiero añadir un personaje nuevo entre el primero y el segundo, nada más tendría que poner su nombre en el arreglo después del primero y el código seguiría funcionando.

Lo que te quiero decir es que si tanta gente trabaja a código y tanta gente dia a día trata de perfeccionarlo, por algo será y es porque te hace la vida más facil. Mira en 5 minutos se puede programar que en la escena haya 1000 cuadrados pequeños, formando una matriz cuadrada, todos en posiciones enteras sin decimales y separados a la misma distancia, intenta hacer esto desde la escena y que todos queden a la misma distancia y con posiciones en enteros, analiza cual sería más preciso y cual tardaría mucho más, y depués en 3 segundos puedo cambiarle el tamaño a los cuadrados y seguiría funcionando, si lo tuvieras desde la escena, cambiarle el tamaño a los cuadros y darle posiciones te llevaría todo un dia.

Saludos

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 08 Ago 2008 04:26 pm
Acabo de empezar en flash y no se casi nada, pero viendo ese codigo veo que es mas facil que como lo estoy haciendo yo, pero ahora quiero hacer otra cosa similar y no se ni por donde empezar.

tengo un mc llamado "cuadro"

quiero que se duplique 30 vezes uno al lado de otro a 5 pixeles de distancia, y que cada uno tenga un nombre de instancia distinto.

Hay algun tutorial que explique mas o menos como hacer este tipo de codigos?

esque hay tantos de miles de codigos que es dificil encontrarlos, no se ni como hacer que el mc se duplique 30 vezes ni como ponerle un nombre de instanciua distinto a cada uno.

por eso "todavia" lo veo mucho mas facil poner 30 vezes el mc en el escenario y ponerle la instancia manualmente :S

Por GameOver

5 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 08 Ago 2008 05:01 pm
Mira aquí tienes un ejemplo sencillo, construye un cuadrado de 20 x 20 conviértelo a MovieClip y bórralo de la escena, ve a la biblioteca y dale click derecho al símbolo del cuadrado, escoge "linkage", marca la opción de "Export for Action Script" y deja marcada la de "Export in first frame", ponle en "Identifier" el nombre de "cuadro" y dale ok.

Después pega este código en el primer frame de tu película:

Código :

// Declaración de variables
var cantidad:Number = 30;
var separacion:Number = 5;
var myCuadro:MovieClip;
var posX:Number = 0;
var posY:Number = 0;

// Crear un ciclo hasta la cantidad de cuadros
for(var i:Number = 0; i < cantidad; i++){
   
   myCuadro = this.attachMovie("cuadro", "cuadro" + i, i, {_x:posX, _y:posY});
   
   // Incrementamos las X en el ancho del cuadro más el valor de la separación
   posX += (myCuadro._width + separacion);
   
   // Si la posicion en las X sobrepasa el ancho 
   // de la pantalla, regresar las X a 0 y aumentar las Y
   // en el alto del cuadro más el valor de la separación
   if(posX > Stage.width){
      
      posX = 0;
      posY += (myCuadro._height + separacion);
      
   }
   
   // Darle acciones a los cuadros
   myCuadro.onRollOver = function():Void{
      
      this._alpha = 10;
      
   }
   
   myCuadro.onRollOut = function():Void{
      
      this._alpha = 100;
      
   }
   
}


No solo le he puesto que se duplique uno al lado del otro a 5 de separación, sino que al llegar al final, vuelve a empezar otra hilera en una nueva línea y además le di una acción a los cuadrados de que al pasar por encima de ellos, cambien su alpha. Puedes hacer experimentos con el código, como cambiar la variable "cantidad" que es la que controla la cantidad de cuadros o la de "separacion" que es la que controla la separación entre estos.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 08 Ago 2008 05:51 pm
Muchissimas gracias.

Por GameOver

5 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 26 Oct 2008 04:29 pm
que bueno!!

Por vegadesign

20 de clabLevel



 

firefox

 

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