PicLens 2.0 in Flash mit Papervision3D: Part II

Dieses Mal (siehe PicLens in Flash mit Papervision3D 2,0 ) public-Code ( PicLens.as ), I, einige Teile des Codes überarbeitet hatte, richten Sie sie mit der neuesten Version von Papervision3D 2,0 Great White und ich machte einige Anpassungen und Ergänzungen. Ich habe in dieser Demo auch eine Reihe von Knob, Knöpfe enthalten, um bestimmte Laufzeit Parameter ändern.

Simulation der Bewegung PicLens

Um so nahe wie möglich an die horizontale Bewegung des PicLens original, habe ich ein wenig Trickserei durch Einfügen eines "nicht sichtbar" DisplayObject3D Ziel für den Raum:

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

In der Praxis der Kamera immer auf die DisplayObject3D Bildergalerie hinter der Serie. Wenn die Kamera bewegt (mit einer beschleunigten Bewegung / Trägheit) auch DisplayObject3D , folgt aber mit einer leichten Verzögerung. Dies erlaubte mir, die Wirkung der Bewegung der weichen und sehr ähnlich wie auf dem Original PicLens durchgeführt zu machen:

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

Ich habe keine Tween verwendet, aber eine einfachere und leistungsfähigere Funktionen:

1
Position + = ((posizionefinale - Position) / Beschleunigung) / Trägheit;

In der Demo können Sie einige Parameter: Fokus, Zoom und Ziel. Dies ist die Position des DisplayObject3D als 99 Bilder! Durch die Veränderung dieser Position werden Sie feststellen, Veränderungen in der Bewegung die ganze Szene.
Fokus und Zoom sind umweltfreundlich Eigenschaften Papervision3D.

Interaktion

Versuchen Sie auf die Bilder ... ;)

14 Kommentare zu "PicLens 2.0 in Flash mit Papervision3D: Part II"

  1. 3. Juli 2008 Oliver Semrau :

    Projekt: Het Groente en Obst-Labor ...

    Louis Bonduelle-Stiftung wurde für sterben Ein auf der Basis von kindgerechtes Informationsportal Adobe Flash Produziert. Aufgabe Krieg es, Den kindern vorteile und sterben Geheimen Superkräfte fruchten von und zu bringen Gemüse spielerisch Naher. Zusamme ...

  2. 15. September 2008 MairoN001:

    Hallo ich dein Beispiel für den Stil Galerie PicLens getestet und ich muss sagen, ich liebte es, sind Ihre Werte noch nicht, aber ich studiere mehrere Tage und ich slam meinem Kopf, wie man einen Filter auf ein einzelnes img passieren.
    Sie legen ein Stück von meinem Code, um besser zu erklären,

    DELI IN CYCLE, wo Sie das Gitter mit INSERT IMG:

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

    und dann erstelle ich die folgende Funktion

    1
    2
    3
    4
    e : InteractiveScene3DEvent ) : void { fnc_ObjRlOver Funktion (e: InteractiveScene3DEvent): void {
    e . displayObject3D , 'z' , Strong . easeOut , e . displayObject3D . z , - 10 , 1 , true ) ; neue Tween (and. displayObject3D, 'z', Strong easeOut und displayObject3D z, - 10, 1, true...);
    filters = [ new GlowFilter ( 0xffffff , 0.60 , 10 , 10 , 2 , 1 ) ] ; .. und Sprites Filter = [new GlowFilter (0xffffff, 0,60, 10, 10, 2, 1)];
    }

    Auf diese Weise würde ich Rollover die Lichter ... einzigen IMG möchten.
    nur so wird der Filter auf alle zugewiesenen, aber wenn ich so sagen img e.displayObject3D mir Fehler

    ein Beispiel umzusehen fand ich, dass Papervision verwendet InteractiveSceneManager einen Filter auf ein Ereignis würden Sie wissen, zuweisen ... Über mich beraten, wie Sie es in Ihrem Beispiel vorangehen?
    wie es mir der Fehler weiterhin?

    Vielen Dank

  3. 15. September 2008 Giovambattista Fazioli :

    @ MairoN001: Sie hat alles richtig gemacht! Fügen Sie einfach eine Zeile bei der Erstellung von Objekten. aggiungi: In der Praxis, wenn das temporäre Objekt initialisiert photo1 , in der Schleife der Schöpfung, vor addEventLister() hinzu:

      photo1.useOwnContainer = true; 

    Im Falle fnc_ObjRlOver so etwas wie:

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

    und alles wird funktionieren! : P

  4. 16. September 2008 MairoN001:

    Vielen Dank für die Antwort, die perfekt funktioniert nur mit "useOwnContainer"
    Klicken Sie auf deaktiviert.

    Ich habe rund um die Werke auf r577 aber nicht auf die 578 zu sehen +

    Die Freisetzung ich benutze, ist das Great White 9. September 9, 2008.

    Ich werde sehen, ob ich eine Lösung in der Zwischenzeit Dokument kann finde ich wäre dankbar, wenn Sie könnten Sie mir mehr darüber.

    Jedenfalls vielen Dank für die Antwort.

  5. 16. September 2008 MairoN001:

    Ok ich eine Lösung gefunden, funktioniert jetzt die Hälfte der klicken, aber nicht das Double Click =)
    Ort meine temporäre Lösung also, wenn es sein sollte nützlich qualkun'altro sicher lesen.
    Von dem, was ich habe um in Papervision Filter auf die Grundelemente gelten gesehen müssen Viewport Ebenen. Vielleicht haben Sie den Code leichter zu verstehen ;)
    DAS PAKET:

      org.papervision3d.view.layer.ViewportLayer Einfuhren; 

    Im Unterricht:

      private var layer: ViewportLayer; 

    DIE FUNKTION: initObjects

    1
    2
    3
    4
    Plane= new Plane ( __matarray [ i ] , THUMBNAIL_WIDTH , THUMBNAIL_HEIGHT , 0 , 0 ) ; var photo1: Plane = new Plane (__matarray [i], THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, 0, 0);
    addChild ( photo1 ) ; . __BasicVw Szenen AddChild (photo1).;
    getChildLayer ( photo1 , true ) ; .. layer = __BasicVw Ansichtsfenster getChildLayer (photo1, true);
    ( InteractiveScene3DEvent . OBJECT_OVER , fnc_ObjRlOver ) photo1. addEventListener (InteractiveScene3DEvent. OBJECT_OVER, fnc_ObjRlOver)

    DIE FUNKTION: fnc_ObjRlOver

    1
    container . filters = [ new GlowFilter ( 0xffffff , 0.60 , 10 , 10 , 2 , 1 ) ] ; ... und displayObject3D Container Filter = [new GlowFilter (0xffffff, 0,60, 10, 10, 2, 1)];

    Ich hoffe, dieser Code kann nützlich sein, andere munter den Ort, den ich verloren 3 Tage, um herauszufinden, wie man einen Filter auf eine Ebene stellen in PVS3D mit dieser Lösung funktioniert, aber nicht die auf das Doppelte zu verstehen versuchen, warum und wenn ich entdecken den Ort ... immer und immer wieder Dank für die Ratschläge, ohne dass Anreiz, die, wie lange ich wieder verloren XD weiß

  6. 16. September 2008 Giovambattista Fazioli :

    @ MairoN001: ausgezeichnete Berichterstattung! Wir werden sehen, was dabei heraus kommt :) Sie haben noch die neueste Version von Papervision3D? Warum haben offiziell die Version 2.0 herausgegeben, der Entnahme aus dem Beta-Zweig.

  7. 16. September 2008 MairoN001:

    Tortoise und jeden Tag benutzen ganzen riuppo ;)

  8. 16. September 2008 Giovambattista Fazioli :

    @ MairoN001: perfekt! Es war genau das, was ich wissen wollte! Ich benutze auch Tortoise SVN :) und bevor ich anfangen die Entwicklung einer guten "Update" : P

  9. 16. September 2008 MairoN001:

    Ich muss sagen, dass Schildkröte ist eine Software, sehr nützlich und ich weiß, dass ein paar Tagen werde ich Ihnen bei Fragen im Zusammenhang mit der Galerie = Folter)

    Weiterbildung zur Galerie ich nicht helfen konnte, aber feststellen, dass in den Zyklus der Img 4 beginnen zu analysieren .. Ich denke, es liegt an inneren Schleife qualke zu Papervision3D nicht wahr? könnten Sie mir sagen warum?

    thk u

  10. 17. September 2008 Giovambattista Fazioli :

    @ MairoN001: wo genau Sie sah diese Klicken Sie auf Senden for von 4?

  11. 17. September 2008 MairoN001:

    Funktion: initObject
    Zyklus:

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

    der Zyklus bewegt sich regelmäßig, aber Pläne beginnen mit "ID4" anstelle von "0"
    Ich bemerkte dabei das für eine Spur

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

    Nach dem Foto zugeordnet Pläne
    Die ersten 4 sind null Spur o_0 "

  12. 17. September 2008 MairoN001:

    Noch ein Tipp für diejenigen, die wollten schon immer auf der Galerie nach dem Vorbild der PicLens Arbeit:
    an der Zeit, wenn Sie auf ein Foto clik vergrößert die img, aber wenn es vorher angeklickt worden anderen nicht ausgewählten sollten in ihre ursprüngliche Position zurückkehren, um zu sehen, mehr und größere nur eine ausgewählte, von hier aus ich ein Problem hatte qualke so I geprüft und untersucht, wie zu ihrer Ebene zu schaffen und zur Verfügung gestellt, um die Fotos hin und her neu gioketto musste ich einen Listener klickt auf den Anhang zu erstellen, wie folgt:

    FUNCTION initObject :

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

    FUNKTION: fnc_ObjClk

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    displayObject3D . id ; var = und obj_select displayObject3D id..;
    Number = 0 ; var k: Anzahl = 0;
    4 ; // HACK PER PLANE SU PV3D CHE PARTONO DA 4 allThb THUMBNAIL_NUMBER var = + 4 / / HACK FOR Flugzeug auf PV3D ab 4

    k= 4 ; k & lt ; allThb ; k ++ ) // IN QUESTO MODO I PRIMI 4 VUOTI LI SALTA for (k = 4, k & lt; allThb k + +) / / auf diese Weise in den ersten 4 EMPTY sie überspringen
    {
    obj_select ! = k ) if (obj_select! = k)
    {
    Plane = __bv . scene . getChildByName ( String ( k ) ) as Plane ; . Jede var: = Ebene __bv Szenen getChildByName (. String (k)) als Ebene;
    Any , 'z' , Strong . easeOut , Any . z , 0 , 1 , true ) ; neue Tween (Any, 'z', Strong easeOut, Any z, 0, 1, true..);
    }
    }

    Ich hoffe, es kann hilfreich sein =)

  13. 17. September 2008 Giovambattista Fazioli :

    @ MairoN001: Im Hinblick auf den Zyklus beruht auf tiefen Niveaus mit Papervision assoziiert, was relevant für die Beendigung der Operation des Codes : P

  14. 8. März 2009 デフラグツール| Kots Blog.:

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

Hinterlasse einen Kommentar

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