PicLens 2.0 en Flash con Papervision3D: Parte II

En esta ocasión (ver PicLens en Flash con Papervision3D 2.0 ) clave pública ( PicLens.as ), tuve que revisar algunas partes del código, se alinean con la última versión de Papervision3D 2.0 Great White y he hecho algunos ajustes y adiciones. He incluido en este demo también una serie de perilla, perillas, a cambio de ciertos parámetros de tiempo de ejecución.

Simulación de movimiento PicLens

Para llegar lo más cerca posible al movimiento horizontal de PicLens original, he usado un truco poco a la inserción de un "no visible" DisplayObject3D objetivo de la habitación:

1
2
3
; __fooTarget = new DisplayObject3D ();
...
target = __fooTarget ; .. __bv cameraAsCamera3D __fooTarget target =;

En la práctica, la cámara siempre apunta a la DisplayObject3D Galería de imágenes detrás de la serie. Cuando la cámara se mueve (con un movimiento acelerado / inercia) también DisplayObject3D sigue, pero con un ligero retraso. Esto me permitió hacer el efecto del movimiento de la suave y muy similar a la realizada en el PicLens original:

1
2
x + = ( ( __slider . Value - __bv . cameraAsCamera3D . x ) / 10 ) / 2.2 ; .. __bv cameraAsCamera3D x + = (.. (Valor __slider. - __bv cameraAsCamera3D x) / 10) / 2.2;
+ = ( ( __slider . Value - __fooTarget . x ) / 5 ) / 2.2 ; __fooTarget x + = ((Valor __slider. - __fooTarget x) / 5.) / 2.2.;

No he usado ninguna Tween, sino una función más simple y potente:

1
posición + = ((posizionefinale posición -) / aceleración) / de inercia;

En la demostración se puede cambiar algunos parámetros: enfoque, el zoom y objetivo. Esta es la posición de la DisplayObject3D de 99 imágenes! Al cambiar esta posición, usted se dará cuenta de los cambios en el movimiento de toda la escena.
Enfoque y el zoom son las propiedades de entorno Papervision3D.

Interacción

Intente hacer clic en las imágenes ... ;)

14 comentarios a "PicLens 2.0 en Flash con Papervision3D: Part II"

  1. 03 de julio 2008 Oliver Semrau :

    Proyecto: Het groente en la fruta de laboratorio ...

    Louis Bonduelle Fundación wurde für die ein auf der Basis von kindgerechtes Informationsportal Flash produziert. Aufgabe guerra es, den Kindern Vorteile und die geheimen Superkräfte von und zu Früchten bringen Gemüse spielerisch Naher. Zusamme ...

  2. 15 de septiembre 2008 MairoN001:

    Hola He probado el ejemplo de la PicLens estilo de galería y debo decir que me encantó, sus niveles no son todavía, pero estoy estudiando varios días y me golpe la cabeza en la forma de pasar un filtro a una sola img.
    Se coloca un pedazo de mi código para explicar mejor

    DELI EN CICLO DE DONDE USTED TIENE LA RED DE INSERTAR IMG:

    1
    ( InteractiveScene3DEvent . OBJECT_OVER , fnc_ObjRlOver ) foto1. addEventListener (InteractiveScene3DEvent. OBJECT_OVER, fnc_ObjRlOver)

    y luego crear la siguiente función

    1
    2
    3
    4
    e : InteractiveScene3DEvent ) : void { fnc_ObjRlOver función (e: InteractiveScene3DEvent): void {
    e . displayObject3D , 'z' , Strong . easeOut , e . displayObject3D . z , - 10 , 1 , true ) ; nueva Tween (and. displayObject3D, 'z', easeOut fuerte, y displayObject3D z, - 10, 1, es verdad...);
    filters = [ new GlowFilter ( 0xffffff , 0.60 , 10 , 10 , 2 , 1 ) ] ; .. y sprites filtros = [nuevo GlowFilter (0xffffff, 0,60, 10, 10, 2, 1)];
    }

    De esta manera, me gustaría el vuelco del vehículo las luces ... solo IMG.
    sólo para que el filtro se asigna a todos, pero si pongo img e.displayObject3D me de error

    un ejemplo de mirar a su alrededor me encontré con que utiliza Papervision InteractiveSceneManager para asignar un filtro a un evento que sabemos ... Más me aconsejara sobre cómo instalarlo en tu ejemplo?
    ya que sigue dándome el error?

    Muchas gracias

  3. 15 de septiembre 2008 Giovambattista Fazioli :

    @ MairoN001: Usted hizo todo bien! Sólo tiene que añadir una línea al crear objetos. aggiungi: En la práctica, cuando el objeto temporal inicializado photo1 , en el circuito de la creación, antes de addEventLister() añade:

      photo1.useOwnContainer = true; 

    En el caso de fnc_ObjRlOver usar algo como:

      e.displayObject3D.filters = [nuevo GlowFilter (0xffffff, 0.6, 10,10,2,1)]; 

    y todo va a funcionar! : P

  4. 16 de septiembre 2008 MairoN001:

    Muchas gracias por la respuesta que funciona a la perfección sólo con "useOwnContainer"
    Haga clic se desactiva.

    He visto que funciona en torno a r577, pero no en el 578 +

    El lanzamiento que uso es la gran novena Blanca el 9 de septiembre de 2008.

    Voy a ver si puedo encontrar una solución al documento, mientras tanto, yo estaría muy agradecido si pudiera usted decirme más acerca de ella.

    De todos modos gracias de nuevo por la respuesta.

  5. 16 de septiembre 2008 MairoN001:

    Ok he encontrado una solución ahora funciona la mitad de los click, pero no el doble clic =)
    el lugar de mi solución temporal por lo que si debe ser útil para leer qualkun'altro seguridad.
    Por lo que he visto alrededor de Papervision para aplicar filtros a los primitivos deben utilizar las capas de la vista. Tal vez poner el código más fácil de entender ;)
    EL PAQUETE:

      org.papervision3d.view.layer.ViewportLayer importaciones; 

    En clase:

      var capa privado: ViewportLayer; 

    LA FUNCIÓN: initObjects

    1
    2
    3
    4
    Plane= new Plane ( __matarray [ i ] , THUMBNAIL_WIDTH , THUMBNAIL_HEIGHT , 0 , 0 ) ; var foto1: Plane = nuevo avión (__matarray [i], THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, 0, 0);
    addChild ( photo1 ) ; . __BasicVw Escenas AddChild (foto1).;
    getChildLayer ( photo1 , true ) ; .. capa = __BasicVw vista getChildLayer (foto1, true);
    ( InteractiveScene3DEvent . OBJECT_OVER , fnc_ObjRlOver ) foto1. addEventListener (InteractiveScene3DEvent. OBJECT_OVER, fnc_ObjRlOver)

    LA FUNCIÓN: fnc_ObjRlOver

    1
    container . filters = [ new GlowFilter ( 0xffffff , 0.60 , 10 , 10 , 2 , 1 ) ] ; ... y displayObject3D contenedores filtros = [nuevo GlowFilter (0xffffff, 0,60, 10, 10, 2, 1)];

    Espero que este código puede ser útil para otras beneficio del lugar en el que perdió tres días para encontrar la manera de poner un filtro en un avión en PVS3D con esta solución funciona, pero no el doble clic en el tratar de entender por qué y si descubro el lugar ... gracias una y otra vez por el consejo, sin ese incentivo quién sabe cuánto tiempo he perdido otra vez XD

  6. 16 de septiembre 2008 Giovambattista Fazioli :

    @ MairoN001: informes excelentes! Vamos a ver qué sale :) Usted todavía tiene la última versión de Papervision3D? ¿Por qué ha lanzado oficialmente la versión 2.0, de sacarlo de la rama beta.

  7. 16 de septiembre 2008 MairoN001:

    Tortuga y el uso de todos los días a lo largo de riuppo ;)

  8. 16 de septiembre 2008 Giovambattista Fazioli :

    @ MairoN001: perfecto! Era justo lo que quería saber! También utilizo Tortoise SVN :) y antes de comenzar a desarrollar un buen "Actualizar" : P

  9. 16 de septiembre 2008 MairoN001:

    Debo decir que la tortuga es un software muy útil y sé que para un par de días te tortura con preguntas relacionadas a la galería =)

    Continúe el análisis de la galería no pude dejar de notar que en el ciclo de arranque en la Img 4 .. Creo que es debido a qualke bucle interno de Papervision3D, ¿no? ¿podría decirme por qué?

    Grosor de u

  10. 17 de septiembre 2008 Giovambattista Fazioli :

    @ MairoN001: el lugar exacto que lo vio Haga clic en Enviar for partir de 4?

  11. 17 de septiembre 2008 MairoN001:

    Función: initObject
    ciclo:

      for (var i = 0; i <__thnumber; i + +) 

    el ciclo se mueve sobre una base regular, pero los planes comienzan con "ID 4" en lugar de "0"
    Me di cuenta de esto por una huella

      trace ("plano ID =" + __bv.scene.getChildByName (String (i))) 

    Después de la foto asignada a los planes de
    los primeros 4 son nulos o_0 rastro "

  12. 17 de septiembre 2008 MairoN001:

    Otro consejo para aquellos que siempre quiso trabajar en la galería siguiendo el ejemplo de PicLens:
    en el momento en que haga clik en la foto se ampliará la img, pero si hubiera sido hace clic en otro no seleccionados deben volver a su posición original, a fin de ver más y más grandes sólo se ha seleccionado, a partir de ahora yo tenía un problema qualke lo he comprobado y estudiado la manera de crear su avión y puesto a disposición de recrear las fotos de ida y vuelta gioketto tuve que crear un par de clics de escucha en el archivo adjunto, como se muestra:

    FUNCIÓN initObject :

    1
    addEventListener ( InteractiveScene3DEvent . OBJECT_CLICK , fnc_ObjClk ) y. displayObject3D. addEventListener (InteractiveScene3DEvent. OBJECT_CLICK, fnc_ObjClk)

    FUNCIÓN: fnc_ObjClk

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    displayObject3D . id ; var = y obj_select displayObject3D id..;
    Number = 0 ; var k: Número = 0;
    4 ; // HACK PER PLANE SU PV3D CHE PARTONO DA 4 allThb THUMBNAIL_NUMBER var = + 4 / / HACK PARA AVION EN PV3D a partir de 4

    k= 4 ; k & lt ; allThb ; k ++ ) // IN QUESTO MODO I PRIMI 4 VUOTI LI SALTA for (k = 4, k & lt; allThb k + +) / / De esta manera en los primeros 4 EMPTY omitirlas
    {
    obj_select ! = k ) if (obj_select! = k)
    {
    Plane = __bv . scene . getChildByName ( String ( k ) ) as Plane ; . Cualquier var: = plano __bv escenas getChildByName (. cuerdas (k)) como avión;
    Any , 'z' , Strong . easeOut , Any . z , 0 , 1 , true ) ; nueva Tween (Any, 'z', Fuerte easeOut, cualquier z, 0, 1, es verdad..);
    }
    }

    Espero que pueda ser útil =)

  13. 17 de septiembre 2008 Giovambattista Fazioli :

    @ MairoN001: Con respecto al ciclo se debe a niveles más profundos asociados con Papervision, nada relevante hasta el final de la operación del código : P

  14. 08 de marzo 2009 デフラグツール| Kots blog.:

    PicLens [...] en Flash con Papervision3D 2.0: Parte II http://www.undolog.com/2008/06/17/piclens-in-flash-con-papervision3d-20-parte-ii/ [... ]

Deja un comentario

XHTML PERMISO TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL