PicLens em Flash com Papervision3D 2.0: Parte II

Terça-feira, 17 de junho de 2008

Este tempo (veja ao Flash com o PicLens Papervision3D 2,0) público código (PicLens.as), tive que rever algumas partes do código, assim, alinhar os últimos lançamentos da Papervision3D 2,0 Great White e fiz algumas adaptações e acréscimos. Eu entrou nesta demo também uma série de Botão, puxadores, runtime para alterar alguns parâmetros.

Simulação do movimento PicLens

Para mais perto possível do movimento horizontal do PicLens original, eu usei um pequeno passo, incluindo uma "invisível" DisplayObject3D meta para a sala:

Actionscript:
  1. ; __fooTarget = new DisplayObject3D ();
  2. ...
  3. = __fooTarget; __bv. cameraAsCamera3D. __fooTarget = alvo;

Na prática semper ponta da sala DisplayObject3D lugar por trás da série de immmagini. Quando a câmera se desloca (com um movimento acelerado / por inércia) também DisplayObject3D o seguinte, mas com um ligeiro atraso. Isto permitiu-me fazer o efeito de movimento suave e muito semelhante ao alcançado no PicLens original:

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

Eu nunca usei nenhuma Tween, mas uma função mais simples e eficiente:

CÓDIGO:
  1. /accelerazione ) /inerzia; Posição + = ((posizionefinale - posição) / aceleração) / inércia;

No demo é possível alterar alguns parâmetros: incidência, zoom e metas. Esta é a posição do DisplayObject3D comparado a 99 fotos! Ao alterar esta posição, você irá notar alterações no movimento da cena.
Foco e zoom são propriedade do Papervision3D.

Interação

Basta clicar sobre as fotos ... ;)

Post relacionado

13 comentários para: "PicLens em Flash com Papervision3D 2.0: Parte II"

  1. getAvatar 1,0 Quinta-feira, Julho 03, 2008, 17:24
    Oliver Semrau disse:

    Projekt: Het groente en frutas laboratório ...

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

  2. getAvatar 1,0 Segunda-feira, 15 de setembro, 2008, 19:16
    MairoN001 disse:

    Olá, tenho analisado o exemplo do seu estilo galeria PicLens e devo dizer que gostei muito, nem mesmo ao seu nível, mas eu estou estudando vários dias e Bati com a cabeça sobre a maneira de passar um filtro para uma única img.
    Você colocar um pedaço do meu código para explicar melhor

    Interior estádio delicatessen onde têm a grade com a IMG post:

      photo1.addEventListener (InteractiveScene3DEvent.OBJECT_OVER, fnc_ObjRlOver) 

    e então eu criei a seguinte função

      fnc_ObjRlOver função (e: InteractiveScene3DEvent): void ( 
      novo Tween (e.displayObject3D, 'z', Strong.easeOut, e.displayObject3D.z, -10, 1, true); 
      e.sprite.filters = [novo GlowFilter (0xffffff, 0,60, 10,10,2,1)]; 
      ) 

    Desta forma, gostaria de capotamento do indivíduo IMG luzes ....
    Só para que o filtro é atribuído a todas as img, mas se eu colocar e.displayObject3D por engano

    Olhando em redor um exemplo que eu encontrei Papervision usa InteractiveSceneManager para atribuir um filtro para um evento livrar dos ratos ... Over sobre como definir isso no seu exemplo?
    enquanto eu continuar a dar errado?

    Muito obrigado

    Resposta Quote
  3. getAvatar 1,0 Segunda-feira, 15 de setembro, 2008, 21:50
    Giovambattista Fazioli disse:

    @ MairoN001: Você foi tão bom! Você simplesmente adicionar uma linha quando você criar objetos. Na prática, quando o objeto inicializa temporária photo1 no ciclo de criação, antes addEventLister() acrescentar:

      photo1.useOwnContainer = true; 

    No fnc_ObjRlOver utilizar em vez disso:

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

    e tudo funcionará! : P

    Resposta Quote
  4. getAvatar 1,0 Terça-feira, 16 setembro, 2008, 15:33
    MairoN001 disse:

    Muito obrigado pela sua resposta é multa exceto que entram "useOwnContainer"
    Clique na constitui deficiência.

    Eu vi o trabalho em torno r577, mas não a 578 +

    A versão que eu uso é o Great White 09 de 9 de setembro, 2008.

    claro a partir de documentos, quando eu encontrar uma solução, entretanto, ser-lhe-á grata se sapresti dizer-me algo mais sobre ele.

    De qualquer forma, obrigado novamente por sua resposta.

    Resposta Quote
  5. getAvatar 1,0 Terça-feira, 16 setembro, 2008, 16:20
    MairoN001 disse:

    Ok eu tenho uma meia solução agora encontrada não clique, mas o Double Click =)
    colocar minha solução temporária, por isso ele pode ser útil para qualkun'altro fácil leitura.
    Pelo que eu vi em torno papervision para aplicar filtros para as primitivas devem usar o viewport camadas. Coloque o código é talvez mais fácil de entender ;)
    A EMBALAGEM:

      org.papervision3d.view.layer.ViewportLayer importação; 

    DE AULAS:

      var camada privado: ViewportLayer; 

    A FUNÇÃO: initObjects

      var photo1: Avião = new Plane (__matarray [i], THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, 0, 0); 
      __BasicVw.scene.addChild (Photo1); 
      = camada __BasicVw.viewport.getChildLayer (photo1, true); 
      photo1.addEventListener (InteractiveScene3DEvent.OBJECT_OVER, fnc_ObjRlOver) 
    

    A FUNÇÃO: fnc_ObjRlOver

      e.displayObject3D.container.filters = [novo GlowFilter (0xffffff, 0,60, 10,10,2,1)]; 

    Espero que este código pode ser útil para outras animar o lugar que eu perdi 3 dias para saber como colocar um filtro em um avião em PVS3D esta solução funciona com o clique duplo, mas não tente entender o porquê e se eu descobrir o local ... Para tempo graças ao município sem o incentivo quem sabe quanto tempo eu teria perdido ainda XD

    Resposta Quote
  6. getAvatar 1,0 Terça-feira, 16 setembro, 2008, 17:22
    Giovambattista Fazioli disse:

    @ MairoN001: excelente relato! Vamos ver o que sai :) Você ainda tem instalada a versão mais recente do Papervision3D? Porque têm lançado oficialmente o 2.0, remover a versão beta do ramo.

    Resposta Quote
  7. getAvatar 1,0 Terça-feira, 16 setembro, 2008, 17:46
    MairoN001 disse:

    Cágado e usar todos os dias todos riuppo ;)

    Resposta Quote
  8. getAvatar 1,0 Terça-feira, 16 setembro, 2008, 17:52
    Giovambattista Fazioli disse:

    @ MairoN001: perfeito! Foi exatamente o que eu queria saber! Eu também uso Tortoise SVN :) e antes de começar a desenvolver um bom "Update" : P

    Resposta Quote
  9. getAvatar 1,0 Terça-feira, 16 setembro, 2008, 22:35
    MairoN001 disse:

    Devo dizer que a tartaruga é um software muito útil e sei que para um par de dias que você torturero de questões relacionadas com a galeria =)

    Ao continuar a analisar a galeria eu não podia ajudar, mas note que partem em Img o ciclo 4 .. Penso que é devido ao ciclo qualke interno Papervision3D ou errado? sapresti me diga por quê?

    THK u

    Resposta Quote
  10. getAvatar 1,0 Quarta-feira, 17 de setembro de 2008 às 14:06
    Giovambattista Fazioli disse:

    @ MairoN001: Onde exatamente você viu este cliclo for 4?

    Resposta Quote
  11. getAvatar 1,0 Quarta-feira, 17 de setembro de 2008 às 15:29
    MairoN001 disse:

    Função: initObject
    ciclo:

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

    ciclo do produto, numa base regular, mas os planos começam com "ID4", em vez de "0"
    Estou correndo em uma pista para este

      trace ( "AVIÃO ID =" + __bv.scene.getChildByName (String (i))) 

    Após a foto atribuída aos planos
    as primeiras 4 faixas são nulos o_0 "

    Resposta Quote
  12. getAvatar 1,0 Quarta-feira, 17 de setembro de 2008 às 15:44
    MairoN001 disse:

    Outro conselho para aqueles que querem trabalhar sobre a galeria seguir o exemplo do PicLens:
    Quando você clica em um img você ampliar as fotos, mas se tivesse sido anteriormente clicado em outro os que não são selecionados deverão regressar ao seu propósito original, de modo a vejam apenas os selecionados maiores, a partir de então tive problema qualke Eu chequei e para que estudou a forma de criar o avião ea disponibilizada, a fim de recriar a frente e para trás gioketto fotos, tive que criar um clique sobre o ouvinte como um exemplo:

    FUNÇÃO initObject

      e.displayObject3D.addEventListener (InteractiveScene3DEvent.OBJECT_CLICK, fnc_ObjClk) 

    FUNÇÃO: fnc_ObjClk

      var obj_select = e.displayObject3D.id; 
      var k: Number = 0; 
      var allThb = THUMBNAIL_NUMBER + 4 / / NO PV3D HACK DE AVIÃO início no 4 
    
      for (k = 4; k <allThb k + +) / / DESTA FORMA NO PRIMEIRO ELES SKIP 4 VAZIO 
      ( 
           if (obj_select! = k) 
    	  ( 
    	  Qualquer var: Avião __bv.scene.getChildByName = (String (k)) como Plane; 
    	  novo Tween (Qualquer, 'z', Strong.easeOut, Any.z, 0, 1, true); 
    	  ) 
      ) 
    

    Espero que possa ser útil =)

    Resposta Quote
  13. getAvatar 1,0 Quarta-feira, 17 de setembro de 2008 às 16:59
    Giovambattista Fazioli disse:

    @ MairoN001: para o ciclo é devido a níveis profundos associados com Papervision, nada de relevante para o fim da operação código : P

    Resposta Quote

Deixe um comentário

TAG XHTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Use <pre> para circundar código