La técnica de chroma key , es decir, la sustitución de un color determinado a otro (u otra fuente), se ha disparado una vez más en la última década con gran arrogancia, gracias a la tecnología cada vez más extendida de la película y el procesamiento de imágenes digitales.
Artículos con la etiqueta 'BitmapData'
¿Cómo aplicar la técnica de chroma key en Adobe Flash
Flash CS3: Crear un efecto de reflejo en cualquier MovieClip
Tomando ventaja de una característica notable de ActionScript 3.0 (ver ActionScript 3.0, todos con el nuevo operador ) he creado un ReflexMe clase capaz de generar un efecto "reflejo" en cualquier MovieClip presentes en la biblioteca.
La fuente es parte del paquete de undolibrary - googlecode de esto - pero si lo desea, puede descargar el archivo solo ReflexMe.as .
Efectos sobre el mapa de bits con perlinNoise ()
La clase BitmapData le permite aplicar fácilmente efectos útiles para diversos fines. Ya hemos visto cómo crear una "televisión de niebla" con unas pocas líneas de código ( Flash CS3 para crear TV niebla en vigor en 1 segundo ). Ahora nos ocuparemos de otro de los efectos "espectaculares" que, como veremos más adelante, permite la creación de efectos visuales interesantes, como en el ejemplo se muestra a continuación: los parámetros variados para observar los diferentes efectos, al hacer clic con el ratón sobre la imagen generada Esto se puede mover.
En esta ocasión, también se agrega un nuevo componente simple (Check) en Undolibrary ! Pon al día tu repositorio SVN. La fuente está disponible aquí: MapEffect.zip
Cómo guardar las imágenes en Flash CS3
Con el uso de Adobe Flash CS3 de mapa de bits se ha desarrollado tanto que es inmediatamente quería crear una pintura pequeña. . Ya hemos visto cómo hacer una pintura pequeña (ver pintar en Flash CS3 Creación de un pintor: simple aplicación de dibujo en Flash CS3 Pro ) puede soportar un verdadero "borrador" - la función de borrado, gracias a un uso particular de capa de Shape y Bitmap . Digamos que Flash (a diferencia de Flex) que no permite la codificación (por ejemplo, JPG o PNG) se guarda automáticamente las imágenes de mapa de bits. Sin embargo, usted puede conseguir alrededor de él mediante un script del lado del servidor y la capacidad de enviar datos en Flash POST.
Flash CS3 para crear TV niebla en vigor en 1 segundo
Flash CS3 no deja de sorprender. He aquí cómo crear la niebla de los televisores clásicos en un segundo lugar con 10 líneas de código.
Pintura Flash CS3: verdadera herramienta de borrar el tiempo
A partir de los códigos proporcionados en Flash CS3 Cree una pintura , y la realización de pequeñas modificaciones, puede mejorar el instrumento de "borrar". Cómo añadir una figura no está visible, se puede utilizar como un "plan" para ejecutar el draw() de modo de mezcla "borrar". Como se muestra en el ejemplo siguiente, después de dibujar algo, mantenga pulsada la tecla Ctrl y el efecto de la "anulación" está ahora en tiempo real.
El código es el siguiente - Fuente :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | . MouseEvent ; flash.events de importación. MouseEvent ; . BitmapData ; flash.display importación. BitmapData ; . Bitmap ; flash.display importación. mapas de bits ; . GradientType ; . flash.display importación GradientType ; / / . Matrix ; importaciones flash.geom. Matrix ; / / Boolean = false ; var md: Boolean = false; / / Sprite = new Sprite ( ) ; var event_spr: Sprite = new Sprite (); event_spr ) ; addChild (event_spr); / / Number = event_spr . stage . stageWidth ; var area_width: Número = event_spr prácticas stageWidth,.. Number = event_spr . stage . stageHeight - 32 ; area_height var: Número .. = event_spr prácticas stageHeight - 32; / / String = GradientType . LINEAR ; fillType var: cadena = GradientType . LINEAL; : Array = [ 0xFF0000 , 0x00FF00 , 0x0000ff ] ; var colores: array = [0xFF0000, 0x00FF00, 0x0000FF]; : Array = [ 1 , 1 , 1 ] ; var alphas: array = [1, 1, 1]; : Array = [ 0 , 128 , 255 ] ; var ratios: matriz = [0, 128, 255]; String = SpreadMethod . PAD ; spreadMethod var: cadena = SpreadMethod PAD;. : Matrix = new Matrix ( ) ; var matriz: Matrix = new Matrix (); createGradientBox ( area_width , area_height , 1 , 0 , 0 ) ; . createGradientBox matriz (area_width, area_height, 1, 0, 0); / / event_spr . graphics ) { con (event_spr. gráficos) { fillType , colors , alphas , ratios , matrix , spreadMethod ) ; beginGradientFill (fillType, colores, alfas, las proporciones, la matriz, spreadMethod); 0 , 0 , area_width , area_height ) ; drawRect (0, 0, area_width, area_height); ; endFill (); } / Evento / Pintura ( MouseEvent . MOUSE_DOWN , _onMouseDown ) ; . event_spr addEventListener ( MouseEvent MOUSE_DOWN, _onMouseDown.); ( MouseEvent . MOUSE_MOVE , _onMouseMove ) ; . event_spr addEventListener ( MouseEvent MOUSE_MOVE, _onMouseMove.); ( MouseEvent . MOUSE_UP , _onMouseUp ) ; . event_spr addEventListener ( MouseEvent MOUSE_UP, _onMouseUp.); ( MouseEvent . MOUSE_OUT , _onMouseUp ) ; . event_spr addEventListener ( MouseEvent MOUSE_OUT, _onMouseUp.); / / BitmapData = new BitmapData ( event_spr . width , event_spr . height , true , 0 ) ; var bmpd: BitmapData = new BitmapData (ancho event_spr., event_spr altura, 0 verdad.) Bitmap = new Bitmap ( bmpd ) ; var bmp: Bitmap = new Bitmap (bmpd); bmp ) ; addChild (bmp); / / / / Forma temporal Shape = new Shape ( ) ; draw_shape var: Forma = new forma (); draw_shape ) ; addChild (draw_shape); / / / / Forma no es visible, utilizado para la "cancelación" Shape = new Shape ( ) ; erase_shape var: Forma = new forma (); / / e : MouseEvent ) : void { función _onMouseDown (e: MouseEvent ): void { ) ; depuración ("_onMouseDown"); . lineStyle ( 10 , 0xffffff , 1 ) ; .. draw_shape gráficos lineStyle (10, 0xffffff, 1); . lineStyle ( 20 , 0xffffff , 1 ) ; .. erase_shape gráficos lineStyle (20, 0xffffff, 1); . moveTo ( e . localX , e . localY ) ; .. draw_shape gráficos moveTo (and. localX y localY.); . moveTo ( e . localX , e . localY ) ; .. erase_shape gráficos moveTo (and. localX y localY.); md = true; } / / e : MouseEvent ) : void { _onMouseUp función (e: MouseEvent ): void { md = false; . draw ( draw_shape ) ; .. bmp bitmapData empate (draw_shape); . clear ( ) ; . draw_shape gráficos claros ().; . clear ( ) ; . erase_shape gráficos claros ().; } / / e : MouseEvent ) : void { _onMouseMove función (e: MouseEvent ): void { ) ; depuración ("_onMouseMove"); md && ! e . ctrlKey ) { if (md & &! y ctrlKey.) { . lineTo ( e . localX , e . localY ) ; .. draw_shape gráficos lineTo (and. localX y localY.); ( md && e . ctrlKey ) { } Else if (md & & y. CtrlKey) { . lineTo ( e . localX , e . localY ) ; .. erase_shape gráficos lineTo (and. localX y localY.); . draw ( erase_shape , null , null , "erase" ) ; bmp bitmapData empate (erase_shape, null, null, "borrar")..; } } / / v : String ) : void { depuración de la función (v: Cadena ): void { : Date = new Date ( ) ; var d: Fecha = new Date (); d . getMinutes ( ) + ":" + d . getSeconds ( ) + ":" + d . getMilliseconds ( ) + ": " + v ) ; trace (d. getMinutes () + "" + d. getSeconds () + "" + getMilliseconds d. () + "" + st); } |
): Hemos añadido una nueva forma, erase_shape no visible (no se llevó a cabo ninguna addChild() ):
1 2 3 |
La pieza de código que se encarga de la elaboración se ha introducido para la tecla de control y, si se pulsa, se interesa precisamente la forma erase_shape y se copian en el mapa de bits:
1 2 3 | .... . lineTo ( e . localX , e . localY ) ; .. erase_shape gráficos lineTo (and. localX y localY.); . draw ( erase_shape , null , null , "erase" ) ; bmp bitmapData empate (erase_shape, null, null, "borrar")..; |
Pintura para crear una aplicación en Flash CS3
Como se explica en flash concurso Actionscript: herramienta de borrar no se puede "borrar" un área en particular de un Sprite, MovieClip o la forma en que las líneas o rectángulos se dibuja con el cursor gráfico. Hay, de hecho, el único método clear() , sin embargo, no tiene efecto sobre toda la superficie del objeto. La solución a este problema radica en la posibilidad de utilizar el mapa de bits y objetos BitmapData. Como veremos más adelante podemos acceder directamente y manipular los datos de mapa de bits con el fin de "borrar" golpes con un instrumento real "borrador".
Muestran dos formas diferentes de lograr la "puerta". per esempio. El primer "draw" (borrar) los datos directamente en el BitmapData, usando el método fillRect() - también se puede utilizar setPixel() por ejemplo. El segundo método, la que yo prefiero, utiliza los métodos de las fusiones (blendMode).
En primer lugar vamos a ver qué tipo de organización es el mínimo necesario para lograr un pintor de Flash simple. El esquema que se presenta a continuación se aplica tanto a las propuestas de la "puerta":

He creado tres capas: la primera MovieClip o Sprite, los antecedentes y el trabajo del controlador de eventos (MouseDown, MouseMove y MouseUp). El segundo, el de mapa de bits es nuestro capas principales, una que realmente dibujado de gráficos se aplicarán y en el que la "puerta". , ecc…). La tercera y última capa, la forma, aborda dos cuestiones: la primera es que permite utilizar directamente las funciones proporcionadas por el cursor gráfico (como lineStyle , drawRect() , etc ...). También aumenta el rendimiento en el cuadro de seguimiento, como se explica en detalle a continuación.






Últimos Comentarios
Giovambattista Fazioli : @ Simon: Yo recomiendo la limpieza de ingresar un código como el de ...
Simon : @ Giovambattista Fazioli: Gracias por su paciencia, todo está claro ... ahora me siento ahora, ...
Giovambattista Fazioli : @ Simon es bastante simple. Ahora no sé si usted necesita la mano frontend, backend o. ..
Simon : Hola, lo siento si te roban este espacio ... que iba a necesitar ayuda si es posible ... tengo que ...
kainone : Pero ¿cómo se puede crear el pulgar y adjuntarlo al puesto como fuera imamgine?