Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Caracas... passei o final de semana todo estudando papervision e XML, depois de vários tutoriais em inglês e português, exemplos e muito tempo quebrando a cabeça eu consegui colocar algo pra funcionar, mas ta com três probleminhas:
01 - as imagens que são puxadas do xml funcionam de boa, mas elas se repetem uma em baixo da outra, ou seja, eu coloquei nove imagens e uma configuração pra exibir 12 imagens na tela (03 colunas e 04 linhas), mas ele mostra apenas as 03 primeiras fotos na primeira e as demais linhas repentem a primeira., não sei o porque disso, não entendi a lógica desse raciocínio.
02 - eu tentei alinhar a galeria no meio, mas sempre que mudo as posições do plano ele começa a travar na tela, trava do flash parar de funcionar, só funcona em posição 0.
03 - Achei em algum lugar (depois de tanto pesquisar e ler perdi a fonte se o dono ler isso me avisa pra eu colocar os créditos), o esquema pra ele girar quando clica em cima, mas tem que esperar até o final da animação pra poder clicar de novo, se clicar antes disso ele não funciona mais (???????)
Ta ai o código, livre pra alguém me ajudar a arrumar, incrementar, distribuir, vender, enfim...só me ajuda a terminar isso!!!
//redimensionando background
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, Redimensionamento);
function Redimensionamento(evt)bg_galeria.x = 0;
bg_galeria.y = 0;
bg_galeria.height = stage.stageHeight;
bg_galeria.width = stage.stageWidth;
}
Redimensionamento(null);import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.BitmapAssetMaterial;
import org.papervision3d.materials.utils.*;
import org.papervision3d.materials.*;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.events.InteractiveScene3DEvent;
import caurina.transitions.Tweener;
import flash.events.Event;var viewport:Viewport3D = new Viewport3D(0,0,true,true);
addChild(viewport);
var cena:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var render:BasicRenderEngine = new BasicRenderEngine();var xml:XML;
var lista:XMLList;
var loadIMG:Loader = new Loader();
var loadXML:URLLoader = new URLLoader();
loadXML.addEventListener(Event.COMPLETE, Listar);
loadXML.load(new URLRequest("galeria.xml"));
//Poe pra funcionar;
function Listar(e:Event):voidxml = new XML(e.target.data);
var xml_colunas:Number = xml.configura.colunas;
var xml_linhas:Number = xml.configura.linhas;
var xml_largura:Number = xml.configura.largura;
var xml_altura:Number = xml.configura.altura;
var xml_espac_horiz:Number = xml.configura.espacamentoh;
var xml_espac_vert:Number = xml.configura.espacamentov;
var alinhaA:Number = (xml_altura + (xml_espac_vert - xml_altura)) * xml_linhas / 2;
var alinhaL:Number = (xml_largura + (xml_espac_horiz - xml_largura)) * xml_colunas / 2;
trace(alinhaA);
trace(alinhaL);
for (var i:int = 0; i < xml_colunas; i++) for (var j:int = 0; j < xml_linhas; j++)
{
//criando o material
var material:BitmapFileMaterial = new BitmapFileMaterial(xml.foto.imagem[i].toString());
material.doubleSided = true;
material.interactive = true;
material.smooth = true;
//adicionando e configurar o plano
var plano:Plane = new Plane(material,xml_altura,xml_largura,0,0);
plano.x = i * xml_espac_horiz;
plano.y = j * xml_espac_vert;
cena.addChild(plano);
camera.target = plano;
addEventListener(Event.ENTER_FRAME, funcVai);
function funcClick(e:InteractiveScene3DEvent)
{
var targetRotation:Number = (plano.rotationY <180) ? 180 : 0;
Tweener.addTween(plano, {rotationY:targetRotation, time:3, transition:"easeOutBounce"});
}
}
//criando interatividade
plano.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, funcClick);
function funcVai(e:Event)
{
var rotY: Number = (mouseY-(stage.stageHeight/2))/(stage.stageHeight/2)*(1200);
var rotX: Number = (mouseX-(stage.stageWidth/2))/(stage.stageWidth/2)*(-1200);
camera.x = camera.x + (rotX - camera.x) / 5;
camera.y = camera.y + (rotY - camera.y) / 5;
render.renderScene(cena, camera, viewport);
}
}
}
Aguardo ajuda de vocês!!!!
Carregando comentários...