Je suis débutant en flash et en AS3, et j'ai construit un cube 3D d'une part, et un site à 6 entrées d'autre part, et je ne sais pas comment les lier, pour entrer sur la page 1 du site en cliquant sur la face 1 du cube etc... On m'a dit qu'il fallait utiliser une classe principale qui teste dans la fonction enterframe ce qu'on doit afficher, soit le cube (où je veux pouvoir revenir une fois sur le site), soit la page 1 du site, ou la page 2 etc.
Quelqu'un pourrait-il me donner le bout de code qui fasse le raccord entre les deux ? Je joins le script du cube et le script du site à 6 pages... Merci d'avance !
CUBE :
stop();
// IMPORTATION des éléments \\
import org.papervision3d.scenes.*;
import org.papervision3d.cameras.*;
import org.papervision3d.objects.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.special.*;
import org.papervision3d.materials.shaders.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.lights.*;
import org.papervision3d.render.*;
import org.papervision3d.view.*;
import org.papervision3d.events.*;
import org.papervision3d.core.utils.*;
import org.papervision3d.core.utils.virtualmouse.VirtualMouse;
var viewport:Viewport3D = new Viewport3D(0, 0, true, true);
addChild(viewport);
viewport.buttonMode = true;
var renderer:BasicRenderEngine = new BasicRenderEngine();
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
camera.zoom = 11;
camera.focus = 100;
var mm:MovieMaterial = new MovieMaterial(devis);
mm.interactive = true;
mm.animated = true;
mm.smooth = true;
var mm2:MovieMaterial = new MovieMaterial(identite);
mm2.interactive = true;
mm2.animated = true;
mm2.smooth = true;
var mm3:MovieMaterial = new MovieMaterial(prestations);
mm3.interactive = true;
mm3.animated = true;
mm3.smooth = true;
var mm4:MovieMaterial = new MovieMaterial(references);
mm4.interactive = true;
mm4.animated = true;
mm4.smooth = true;
var mm5:MovieMaterial = new MovieMaterial(idees);
mm5.interactive = true;
mm5.animated = true;
mm5.smooth = true;
var mm6:MovieMaterial = new MovieMaterial(cvdw);
mm6.interactive = true;
mm6.animated = true;
mm6.smooth = true;
var cube:Cube = new Cube(new MaterialsList({front:mm, left:mm2, right:mm3, top:mm4, bottom:mm5, back:mm6}),
300, 300, 300, 10, 10, 10)
// RENDU de la scène \\
scene.addChild(cube);
addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void
{
var xDist:Number = mouseX - stage.stageWidth * 0.5;
var yDist:Number = mouseY - stage.stageHeight * 0.5;
cube.rotationY += xDist * 0.01;
cube.rotationX += yDist * 0.01;
renderer.renderScene(scene, camera, viewport);
}
// LIEN vers les différentes pages à partir du cube (c'est là où je cale, car les liens ne me font entrer que par une seule page de mon site) \\
identite.addEventListener(MouseEvent.CLICK, identiteClick);
function identiteClick(e:MouseEvent):void
{
var my_loader:Loader = new Loader();
my_loader.load(new URLRequest("identite.swf" ));
addChild(my_loader);
removeChild(viewport)
}
SITE à 5 entrées (la face du cube qui contient le logo n'est pas clickable)
stop();
import fl.transitions.Tween;
import fl.transitions.easing.*;
flash.media.SoundMixer.stopAll();
// IMPORTATION de la page1\\
var currentPage:MovieClip = identite_mc;
var devisPage:pageDevis = new pageDevis();
var prestationsPage:pagePrestations = new pagePrestations();
var referencesPage:pageReferences = new pageReferences();
var ideesPage:pageIdees = new pageIdees();
var identitePage:pageIdentite = new pageIdentite();
identite_mc.targetMC = identitePage;
prestations_mc.targetMC = prestationsPage;
references_mc.targetMC = referencesPage;
idees_mc.targetMC = ideesPage;
devis_mc.targetMC = devisPage;
// DEFINITION des places des 5 pages dans le loader \\
devisPage.x = 490.2;
devisPage.y = 415.3;
ideesPage.x = 498;
ideesPage.y = 415.3;
referencesPage.x = 505.8;
referencesPage.y = 414.1;
prestationsPage.x = 525.8;
prestationsPage.y = 447;
identitePage.x = 165.4;
identitePage.y = 358.6;
// charger la page 1 \\
addChild(identitePage);
// bouton qui s'illumine en fonction de la page cliquée \\
highlight_mc.x = identite_mc.x;
underline_mc.x = identite_mc.x;
identite_mc.buttonMode = true;
prestations_mc.buttonMode = true;
references_mc.buttonMode = true;
idees_mc.buttonMode = true;
devis_mc.buttonMode = true;
identite_mc.addEventListener(MouseEvent.ROLL_OVER,moveUnderline);
prestations_mc.addEventListener(MouseEvent.ROLL_OVER,moveUnderline);
references_mc.addEventListener(MouseEvent.ROLL_OVER,moveUnderline);
idees_mc.addEventListener(MouseEvent.ROLL_OVER,moveUnderline);
devis_mc.addEventListener(MouseEvent.ROLL_OVER,moveUnderline);
identite_mc.addEventListener(MouseEvent.ROLL_OUT,mU);
prestations_mc.addEventListener(MouseEvent.ROLL_OUT,mU);
references_mc.addEventListener(MouseEvent.ROLL_OUT,mU);
idees_mc.addEventListener(MouseEvent.ROLL_OUT,mU);
devis_mc.addEventListener(MouseEvent.ROLL_OUT,mU);
function moveUnderline(e:MouseEvent):void
{
new Tween(underline_mc,"x",Strong.easeOut,underline_mc.x,e.currentTarget.x,24,false);
}
function mU(e:MouseEvent):void
{
new Tween(underline_mc,"x",Strong.easeOut,e.currentTarget.x,currentPage.x,24,false);
}
identite_mc.addEventListener(MouseEvent.CLICK,newPage);
prestations_mc.addEventListener(MouseEvent.CLICK,newPage);
references_mc.addEventListener(MouseEvent.CLICK,newPage);
idees_mc.addEventListener(MouseEvent.CLICK,newPage);
devis_mc.addEventListener(MouseEvent.CLICK,newPage);
function newPage(e:MouseEvent):void
{
new Tween(highlight_mc,"x",Strong.easeOut,highlight_mc.x,e.currentTarget.x,24,false);
removeChild(currentPage.targetMC);
currentPage = MovieClip(e.currentTarget);
addChild(currentPage.targetMC);
currentPage.targetMC.gotoAndPlay(1);
}
// bouton pour retourner au cube initial \\
logo_btn.addEventListener(MouseEvent.CLICK, logo_btnClick);
function logo_btnClick(e:MouseEvent):void
{
var loader:Loader = new Loader();
loader.load(new URLRequest("cube.swf" ));
removeChild(currentPage.targetMC)
addChild(loader);
}
merci !