Foto Panoramica 360º usando bitmapData
A partir de un código posteado por Teseo en Cristalab, en la que generaba una imagen panorámica utilizando BitmapData escribí esta clase:
- import flash.display.*;
- import flash.geom.*;
- import mx.utils.Delegate;
- //--------------------------------
- class pan360
- {
- private var ruta:MovieClip;
- private var clip:MovieClip;
- private var imagen:String;
- private var ancho:Number;
- private var v:Number;
- private var wa:Number;
- //--------------------------------
- public function pan360(qRuta:MovieClip, qClip:String, qImagen:String, qAncho:Number)
- {
- ruta = qRuta;
- imagen = qImagen;
- ancho = qAncho;
- clip = ruta.createEmptyMovieClip(qClip, ruta.getNextHighestDepth());
- clip.img = BitmapData.loadBitmap(imagen);
- clip.tmp = new BitmapData(ancho, clip.img.height, true, 0);
- clip.attachBitmap(clip.tmp, 1, "auto", true);
- clip.tmp.copyPixels(clip.img, clip.tmp.rectangle, null);
- clip.onRollOver = Delegate.create(this, onRollOver);
- clip.onRollOut = Delegate.create(this, onRollOut);
- }
- //--------------------------------
- private function onRollOver():Void
- {
- clip.onEnterFrame = Delegate.create(this, onEnterFrame);
- }
- private function onRollOut():Void
- {
- delete clip.onEnterFrame;
- }
- private function onEnterFrame():Void
- {
- wa = clip.img.width;
- v = (v == undefined) ? 0 : Math.floor((v + (ruta._xmouse - clip.tmp.width / 2) / 15) % wa);
- clip.tmp.copyPixels(clip.img, new Rectangle(v, 0, wa, clip.img.height), null);
- clip.tmp.copyPixels(clip.img, new Rectangle(v + wa - 2 * wa * (v > 0), 0, wa, clip.img.height), null);
- }
- //--------------------------------
- public function pos(qX:Number, qY:Number):Void
- {
- clip._x = qX;
- clip._y = qY;
- }
- }
Su uso:
- import pan360;
- var pano:pan360 = new pan360(this, "pano1", "pano", 300);
- pano.pos(100, 50);
Pueden ver el post original AQUI.
Pueden ver tambien este otro ejemplo de movimiento panorámico. En este caso utilizando MovieClips y máscaras.
Compártelo:
Visto 13.506 veces
Excelente aplicación y mejora de lo que empezó teseo
Al final queda todo muy simple de usar!!
//offtopic//
Un favor, en tu sección de Links>Clabers, podrÃas actualizar el URL de mi blog, de ctrl-F5.vectorice.com ahora estoy en http://www.aeromental.com
Done! gracias danielsemper
estoy probando las panoramica tal y como la explicais arriba, pero me da errores de interfaz y no se qué, la verdad es que estoy en mis comienzos en cuanto a web. Por favor, alguién puede explicarmelo mas detalladamente, paso por apso, vaya…para burritas!!!
Grazie!!!
a mi tambien me da algun que otro error
dad mas detalles por favor
gracias
no podeis poner el .fla para descargar porfavor?
gracias
PORQUE NO PONEN EL .FLA
COMPARTAN PUES
@JACASS: Estamos compartiendo el código… la idea es aprender a hacerlo no limitarse a abrir un .fla
Lo más lógico es publicar el punto fla, si el código esta mal hecho y tira errores.
No para copiarlo, sino para ver en acción como funciona.
Jactarse de poder desarrollar el código y no dar espacio a los que estamos aprendiendo es simple vanidad intelectualoide
@javier: No es lo más lógico, es lo más cómodo.
En el post tienes el 100% del código necesario. LO ÚNICO que has de hacer es COPIAR el código y PEGAR en una pelÃcula nueva, NADA MÃS…
Quejarse porque no haya un .fla en el que hasta ese mÃnimo proceso lo haya hecho YO, es de autentico vago…