Home » AS2 »Avanzado »Class »Efectos » Currently Reading:

Foto Panoramica 360º usando bitmapData

febrero 18, 2007 AS2, Avanzado, Class, Efectos 9 Comments
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:

  1. import flash.display.*;
  2. import flash.geom.*;
  3. import mx.utils.Delegate;
  4. //--------------------------------
  5. class pan360
  6. {
  7.     private var ruta:MovieClip;
  8.     private var clip:MovieClip;
  9.     private var imagen:String;
  10.     private var ancho:Number;
  11.     private var v:Number;
  12.     private var wa:Number;
  13.     //--------------------------------
  14.     public function pan360(qRuta:MovieClip, qClip:String, qImagen:String, qAncho:Number)
  15.     {
  16.         ruta = qRuta;
  17.         imagen = qImagen;
  18.         ancho = qAncho;
  19.         clip = ruta.createEmptyMovieClip(qClip, ruta.getNextHighestDepth());
  20.         clip.img = BitmapData.loadBitmap(imagen);
  21.         clip.tmp = new BitmapData(ancho, clip.img.height, true, 0);
  22.         clip.attachBitmap(clip.tmp, 1, "auto", true);
  23.         clip.tmp.copyPixels(clip.img, clip.tmp.rectangle, null);
  24.         clip.onRollOver = Delegate.create(this, onRollOver);
  25.         clip.onRollOut = Delegate.create(this, onRollOut);
  26.     }
  27.     //--------------------------------
  28.     private function onRollOver():Void
  29.     {
  30.         clip.onEnterFrame = Delegate.create(this, onEnterFrame);
  31.     }
  32.     private function onRollOut():Void
  33.     {
  34.         delete clip.onEnterFrame;
  35.     }
  36.     private function onEnterFrame():Void
  37.     {
  38.         wa = clip.img.width;
  39.         v = (v == undefined) ? 0 : Math.floor((v + (ruta._xmouse - clip.tmp.width / 2) / 15) % wa);
  40.         clip.tmp.copyPixels(clip.img, new Rectangle(v, 0, wa, clip.img.height), null);
  41.         clip.tmp.copyPixels(clip.img, new Rectangle(v + wa - 2 * wa * (v > 0), 0, wa, clip.img.height), null);
  42.     }
  43.     //--------------------------------
  44.     public function pos(qX:Number, qY:Number):Void
  45.     {
  46.         clip._x = qX;
  47.         clip._y = qY;
  48.     }
  49. }

Su uso:

  1. import pan360;
  2. var pano:pan360 = new pan360(this, "pano1", "pano", 300);
  3. 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:

Foto Panoramica 360º usando bitmapData
Visto 9.416 veces

Currently there are "9 comments" on this Article:

  1. danielsemper dice:

    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

  2. admin dice:

    Done! gracias danielsemper :)

  3. Telma dice:

    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!!!

  4. jorjo dice:

    a mi tambien me da algun que otro error

    dad mas detalles por favor

    gracias

  5. jorjo dice:

    no podeis poner el .fla para descargar porfavor?

    gracias

  6. JACASS dice:

    PORQUE NO PONEN EL .FLA

    COMPARTAN PUES

  7. zguillez dice:

    @JACASS: Estamos compartiendo el código… la idea es aprender a hacerlo no limitarse a abrir un .fla

  8. javier dice:

    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

  9. zguillez dice:

    @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…

Comment on this Article:








AdvertisementAdvertisementAdvertisementAdvertisement

Recibe las novedades por email



Map

Ranking

Codigoactionscript.org: 4.65 sobre 5 (106 valoraciones)

twitter-widget.com