Comunidad de diseño web y desarrollo en internet online

png con transparencia y mouse

Citar            
MensajeEscrito el 28 Feb 2011 02:57 am
Hola a todos

Tengo un pequeño programa que carga imagenes png con transparencias y las transforma a movieClip, y quisiera que el mouse, sólo detectara la zona no transparente. Vi en alguna parte que lo hacían con BitmapData seteando "transparency", pero lo intenté de varias formas y no lo logre :crap:

Se los agradecería mucho si pudieran ayudarme

Chao

Por ayslin

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Feb 2011 03:10 am
Que yo sepa la única forma es con la clase BitmapData, verificando que los colores del PNG según la posición del Mouse (getPixel(mouseX,mouseY). No sé si existe otra forma la verdad.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 28 Feb 2011 05:00 pm
Gracias Hernán

Pero a pesar de tu ayuda no me ha resultado. Debo estar cometiendo un error, pero no sé qué hacer.
Resumiendo mi programa, tengo un movieclip llamado "pelo", que tiene una parte con transparencia. Intenté cambiar el programa para que detectara cuando sí hay transparencia (para que después, me considere lo que esta más abajo, pero por ahora no lo estoy haciendo), con lo que tú me dijiste y el codigo quedó así:

Código ActionScript :

var bmpData:BitmapData = new BitmapData(2,1);

pelo.addEventListener( MouseEvent.CLICK , getPixelColour );

function getPixelColour(e:MouseEvent):void
{
   var myBitmapData:BitmapData = new BitmapData (pelo.width, pelo.height);
   myBitmapData.draw(pelo);
   
   trace(myBitmapData.getPixel32( mouseX , mouseY ));
   
}



cuando hago click en el mc llamado pelo, lo transformo (o eso intento :P) a un BitMapData
para que me escriba el valor del pixel. El problema es que siempre me manda 0 incluso en las partes que no hay transparencia en mi mc :crap: .

¿qué estoy haciendo mal?

Por ayslin

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Mar 2011 01:51 am
Encontré una solución :D

Había que usar "draw" del BitmapData para transformar los mc. Luego agregarlo a un Sprite, y desde allí, pude acceder a los datos de los pixeles, porque antes me arrojaba puros ceros.

Finalmente use el "getObjectsUnderPoint", para obtener todos los objetos que estaban debajo, y fui evaluando uno por uno hasta encontrar uno que no fuera transparente.

Chau ^^

Por ayslin

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Mar 2011 02:51 pm
Olvide mencionar, que hay un offset entre en valor que obtiene el mouse con mouseX y mouseY, y el valor del objeto al que le estoy sacando la info (me refiero a esto miMovieClip.x y miMovieClip.y) por eso me arrojaba puros 0 :P

Por ayslin

15 de clabLevel



 

firefox

 

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