PicLens 2.0 dans Flash avec Papervision3D: Partie II

Cette fois-ci (voir PicLens en Flash avec Papervision3D 2.0 ) code public ( PicLens.as ), j'ai dû revoir certaines parties du code, l'aligner avec la dernière version de Papervision3D 2.0 Great White et j'ai fait quelques ajustements et des ajouts. J'ai inclus dans cette démo a également un certain nombre de bouton, les boutons, pour changer les paramètres d'exécution de certains.

Simulation de mouvement PicLens

Pour se rapprocher autant que possible d'un mouvement horizontal de PicLens originale, j'ai utilisé une ruse peu à l'insertion d'un "non visible" DisplayObject3D cible pour la salle:

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

En pratique, la caméra pointe toujours vers la DisplayObject3D Galerie d'images derrière la série. Lorsque la caméra se déplace (avec un mouvement accéléré / inertie) a également DisplayObject3D suit, mais avec un léger retard. Cela m'a permis de faire de l'effet du mouvement de la douce et très similaire à celle effectuée sur les PicLens originale:

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

Je n'ai pas utilisé toute Tween, mais une fonction plus simple et plus puissant:

1
la position + = ((posizionefinale - position) / accélération) / inertie;

Dans la démo , vous pouvez modifier certains paramètres: point, le zoom et la cible. Telle est la position de l' DisplayObject3D de 99 images! En changeant cette position, vous remarquez des changements dans le mouvement de toute la scène.
Focus et zoom sont propriétés de l'environnement Papervision3D.

Interaction

Essayez de cliquer sur les images ... ;)

14 commentaires à "PicLens 2.0 dans Flash avec Papervision3D: Part II"

  1. 3 juillet 2008 Oliver Semrau :

    Projekt: Het groente fruits en laboratoire ...

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

  2. 15 septembre 2008 MairoN001:

    Bonjour j'ai testé ton exemple de l'PicLens galerie de style, et je dois dire que j'ai adoré, votre niveau ne sont pas encore mais je suis étudiant plusieurs jours et que je claque ma tête sur comment passer d'un filtre à une seule img.
    Vous placez un morceau de mon code pour mieux expliquer

    DELI DANS LE CYCLE OÙ VOUS AVEZ LA GRILLE AVEC INSERT IMG:

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

    puis-je créer la fonction suivante

    1
    2
    3
    4
    e : InteractiveScene3DEvent ) : void { fnc_ObjRlOver function (e: InteractiveScene3DEvent): void {
    e . displayObject3D , 'z' , Strong . easeOut , e . displayObject3D . z , - 10 , 1 , true ) ; new Tween (et. displayObject3D, 'z', easeOut Strong et displayObject3D z, - 10, 1, c'est vrai...);
    filters = [ new GlowFilter ( 0xffffff , 0.60 , 10 , 10 , 2 , 1 ) ] ; .. et les sprites des filtres = [nouveau GlowFilter (0xFFFFFF, 0,60, 10, 10, 2, 1)];
    }

    De cette façon, je tiens à retournement des lumières ... seule IMG.
    juste si le filtre est attribué à tous mais si je mets img e.displayObject3D m'a erreur

    un exemple de regarder autour J'ai constaté que Papervision utilise InteractiveSceneManager d'attribuer un filtre pour un événement que vous savez ... Plus me conseiller sur la façon de le mettre dans votre exemple?
    car il continue de me donner l'erreur?

    Merci beaucoup

  3. 15 septembre 2008 Giovambattista Fazioli :

    @ MairoN001: Vous avez tout fait correctement! Il suffit d'ajouter une ligne lors de la création d'objets. aggiungi: En pratique, lorsque l'objet temporaire initialisée photo1 , dans la boucle de la création, avant addEventLister() ajoute:

      photo1.useOwnContainer = true; 

    Dans le cas fnc_ObjRlOver utiliser quelque chose comme:

      e.displayObject3D.filters = [nouveau GlowFilter (0xFFFFFF, 0,6, 10,10,2,1)]; 

    et tout fonctionnera! : P

  4. 16 septembre 2008 MairoN001:

    Merci beaucoup pour la réponse qui fonctionne parfaitement uniquement avec "useOwnContainer"
    Cliquez pour désactiver.

    J'ai vu autour qui fonctionne sur r577 mais pas sur la 578 +

    Le communiqué que j'utilise est le Great White 9th of Septembre 9, 2008.

    Je vais voir si je peux trouver une solution afin de documenter en attendant je vous serais reconnaissant si vous pouviez vous m'en dire plus à ce sujet.

    Merci quand même encore pour la réponse.

  5. 16 septembre 2008 MairoN001:

    Ok j'ai trouvé une solution fonctionne désormais la moitié du clic, mais pas le double clic =)
    place ma solution temporaire si elle doit être utile à qualkun'altro sûre lire.
    De ce que j'ai vu autour de papervision d'appliquer des filtres pour les primitives doivent utiliser les couches de la fenêtre. Peut-être vous mettre le code plus facile à comprendre ;)
    LE FORFAIT:

      les importations org.papervision3d.view.layer.ViewportLayer; 

    En classe:

      privés couche var: ViewportLayer; 

    LA FONCTION: initObjects

    1
    2
    3
    4
    Plane= new Plane ( __matarray [ i ] , THUMBNAIL_WIDTH , THUMBNAIL_HEIGHT , 0 , 0 ) ; var photo1: Avion = nouvel avion (__matarray [i], THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, 0, 0);
    addChild ( photo1 ) ; . __BasicVw Scènes addChild (photo1).;
    getChildLayer ( photo1 , true ) ; .. = couche __BasicVw viewport getChildLayer (photo1, true);
    ( InteractiveScene3DEvent . OBJECT_OVER , fnc_ObjRlOver ) photo1. addEventListener (InteractiveScene3DEvent. OBJECT_OVER, fnc_ObjRlOver)

    LA FONCTION: fnc_ObjRlOver

    1
    container . filters = [ new GlowFilter ( 0xffffff , 0.60 , 10 , 10 , 2 , 1 ) ] ; ... et des conteneurs displayObject3D filtres = [nouveau GlowFilter (0xFFFFFF, 0,60, 10, 10, 2, 1)];

    J'espère que ce code peut être utile à d'autres perk la place, j'ai perdu trois jours pour savoir comment mettre un filtre sur un avion en PVS3D avec cette solution fonctionne, mais pas le clic du double d'essayer de comprendre pourquoi et si je découvre l'endroit ... merci encore et encore pour les conseils, sans cette incitation, qui sait combien de temps j'ai perdu à nouveau XD

  6. 16 septembre 2008 Giovambattista Fazioli :

    @ MairoN001: rapports excellents! Nous allons voir ce qui sort :) Vous avez toujours la dernière version de Papervision3D? Pourquoi avoir lancé officiellement le 2.0, le retirer de la branche bêta.

  7. 16 septembre 2008 MairoN001:

    Tortue et utilisez tous les jours à travers riuppo ;)

  8. 16 septembre 2008 Giovambattista Fazioli :

    @ MairoN001: parfait! C'était exactement ce que je voulais savoir! J'utilise aussi Tortoise SVN :) et avant que je commencer à développer un "bon jour" : P

  9. 16 septembre 2008 MairoN001:

    Je dois dire que la tortue est un logiciel très utile et je sais que pour un couple de jours, je vais vous torturer avec des questions liées à la galerie =)

    Continue d'analyser la galerie je ne pouvais pas m'empêcher de remarquer que dans le cycle de démarrage lors de la 4 Img .. Je pense qu'il est dû à qualke boucle interne de Papervision3D n'est-ce pas? pourriez-vous me dire pourquoi?

    thk u

  10. 17 septembre 2008 Giovambattista Fazioli :

    @ MairoN001: où exactement vous avez vu ce Cliquez sur Soumettre for partir de 4?

  11. 17 septembre 2008 MairoN001:

    Fonction: initObject
    cycle:

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

    le cycle se déplace sur une base régulière, mais les plans commencent par "ID4" au lieu de "0"
    J'ai remarqué en faisant cela pour une trace

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

    Après la photo attribué à des plans
    les 4 premiers sont nulles traces o_0 "

  12. 17 septembre 2008 MairoN001:

    Une autre astuce pour ceux qui ont toujours voulu travailler sur la galerie en suivant l'exemple des PicLens:
    au moment où vous clik sur une photo va agrandir l'IMG, mais si elle avait été précédemment cliqué une autre désélectionné devrait revenir à sa position initiale, afin de voir de plus en plus un seul sélectionné, à partir d'ici j'ai eu un problème qualke alors j'ai vérifié et étudié la façon de créer leur avion et mis à disposition pour recréer les photos avant et en arrière gioketto je devais créer un auditeur clics sur la pièce jointe comme indiqué:

    FONCTION initObject :

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

    FONCTION: fnc_ObjClk

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    displayObject3D . id ; var = et obj_select displayObject3D id..;
    Number = 0 ; var k: Nombre = 0;
    4 ; // HACK PER PLANE SU PV3D CHE PARTONO DA 4 allThb THUMBNAIL_NUMBER var = + 4 / / hack pour avion sur PV3D à partir de 4

    k= 4 ; k & lt ; allThb ; k ++ ) // IN QUESTO MODO I PRIMI 4 VUOTI LI SALTA pour (k = 4, k & lt; allThb k + +) / / cette façon dans les 4 premiers VIDE PASSER LES
    {
    obj_select ! = k ) if (obj_select! = k)
    {
    Plane = __bv . scene . getChildByName ( String ( k ) ) as Plane ; . Toute var: = Avion __bv scènes getChildByName (. cordes (k)) comme plan;
    Any , 'z' , Strong . easeOut , Any . z , 0 , 1 , true ) ; new Tween (Tout, 'z', Strong easeOut, tout z, 0, 1, c'est vrai..);
    }
    }

    J'espère que cela peut être utile =)

  13. 17 septembre 2008 Giovambattista Fazioli :

    @ MairoN001: En ce qui concerne le cycle est due à des niveaux profonds associés à Papervision, rien de pertinent à la fin de l'opération du code : P

  14. 8 mars 2009 デフラグツール| Kots blog.:

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

Laisser un commentaire

XHTML TAG PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CODE D'INSERTION:
 <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 


Arrêtez SOPA