package { import fl.controls.ComboBox; import fl.data.DataProvider; import flash.display.*; import flash.display.Stage; import flash.ui.*; import flash.events.*; import flash.display.SimpleButton; import flash.text.*; import flash.net.*; import flash.media.Video; import flash.utils.Timer; import org.papervision3d.cameras.FreeCamera3D; import org.papervision3d.scenes.MovieScene3D; import org.papervision3d.objects.Plane; import org.papervision3d.objects.Sphere; import org.papervision3d.materials.BitmapFileMaterial; import org.papervision3d.materials.InteractiveVideoStreamMaterial; import org.papervision3d.events.InteractiveScene3DEvent; import org.papervision3d.materials.MovieMaterial; import boutonchaud; //import Chargevideo; import BulleInfo; //import boutpleinecran; import BulleCharge; import BulleInfobouton; import plan; public class VisionneuseSphereclicsimpleok extends Sprite { //------------------------- interupteurs des options--------------------- public var jeveuxbarrenavigation:Number=1; //barre de navigation on/off public var jeveuxplan:Number=1; //le plan on/off en plus il faut un tableau de plan voir ci-dessous public var jeveuxlistederoulante:Number=1; // la liste déroulante public var jeveuxaide:Number=1; // le bouton aide public var texteaide:String="Maintenez enfoncé le bouton gauche de votre souris et déplacer votre pointeur pour naviguer dans l'image.
Relachez le bouton gauche de votre souris pour stopper le déplacement.
Utilisez la molette de votre souris pour zoomer dans l'image (touche +/- du player).

Option possible :
- Plein écran (non ecommandé sur machine lente touche X du player)

Cliquez pour fermer"; //texte de l'aide si on public var jeveuxcroixaucentre:Number=0; //la croix au centre public var jeveuxcalquetravail:Number=0; //le calque de travail pour voir les coordos des hotspot public var jeveuxflechedefilement:Number=0; //la fleche de limite de defilement qui apparait durant le déplacement public var jeveuxlogoplafond:Number=0; // logo pc74 au plafond public var jeveuxlogovv74:Number=1; // logo vv74 avec lien sur le coté //------------------------------------------------------------------------------- // EXPLICATION boutonchaud // angle hori, angle verti, image ou on est, image ou on va, ??, type bouton, ??, explication titre. var tab1:Array= new Array(20,7,"pelouse.jpg","cuisine.jpg",1,"normal",0,"La salle a manger",""); var tab2:Array= new Array(98,-9,"cuisine.jpg","pelouse.jpg",1,"normal",0,"Le jardin",""); var tab3:Array= new Array(165,-9,"cuisine.jpg","salonmimi.jpg",1,"normal",0,"Le salon",""); var tab4:Array= new Array(248,-9,"cuisine.jpg","salonmimi.jpg",1,"normal",0,"Le salon",""); var tab5:Array= new Array(230,-7,"salonmimi.jpg","cuisine.jpg",1,"normal",0,"La salle a manger",""); var tab6:Array= new Array(151,-7,"salonmimi.jpg","cuisine.jpg",1,"normal",0,"La salle manger",""); var tab7:Array= new Array(58,-7,"salonmimi.jpg","sdbain.jpg",1,"normal",0,"La salle de bain",""); var tab8:Array= new Array(47,-5,"salonmimi.jpg","chambre.jpg",1,"normal",0,"La chambre",""); var tab9:Array= new Array(349,-7,"chambre.jpg","sdbain.jpg",1,"normal",0,"La salle de bain",""); var tab10:Array= new Array(11,-10,"chambre.jpg","salonmimi.jpg",1,"normal",0,"Le salon",""); var tab11:Array= new Array(253,-7,"sdbain.jpg","salonmimi.jpg",1,"normal",0,"Le salon",""); var tab12:Array= new Array(-42,-14,"salonmimi.jpg","albert.flv",1,"video",0,"Parapente",""); var tab13:Array= new Array(1,-7,"salonmimi.jpg","bigsoul.mp3",1,"mp3",0,"Bigsoul",""); var tabbout= new Array(tab1,tab2,tab3,tab4,tab5,tab6,tab7,tab8,tab9,tab10,tab11,tab12,tab13); var piece1:Array = new Array("Le jardin","pelouse.jpg",0,97,185,-60,360,360,89,-89,6,25,"","-70","-3","","","",""); var piece2:Array = new Array("La Salle à manger","cuisine.jpg",0,208,123,-25,360,360,89,-89,6,25,"","-39","-6","","","",""); var piece3:Array = new Array("Le salon","salonmimi.jpg",0,125,130,170,360,360,89,-89,6,25,"","197","-7","","","",""); var piece4:Array = new Array("La chambre","chambre.jpg",0,60,118,-65,360,360,89,-89,6,25,"","197","-25","","","",""); var piece5:Array = new Array("La salle de bain","sdbain.jpg",0,50,50,130,360,360,10,-35,6,25,"","147","-20","","","",""); var tabpiece= new Array(piece1,piece2,piece3,piece4,piece5); var tabboutspecial= new Array(); //----------------- toujours garder le tableau des plan meme si inutilisé var leplan1:Array=new Array("Appartement A1 6/8 pers","plan1.gif",260,194); var leplan2:Array=new Array("Appartement A2 8/10 pers","planhaut.gif",280,171); var tabplan:Array= new Array(leplan1,leplan2); public var poidsfichier:Number=2675786; //attention au poids du fichier public var intersecu:Number=0; //inter secu public var chargement:Number=1; //inter chargement en cours private var nbrips:Number=40; //nbr images/secondes du swf private static const CHEMIN_IMAGES:String = "./assets/"; private var MAX_X_ROTATIONHAUT:Number = 90; //les rotation maximales limitant les déplacemets private var MAX_X_ROTATIONBAS:Number= 90; private var MAX_Y_ROTATIONG:Number = 360; private var MAX_Y_ROTATIOND:Number = 360; // si MAX_Y_ROTATIOND=360 c'est un 360° sinon image 2d public var limitegauche:int; //les limites fixes qui ne bougent pas avec le zoom public var limitedroite:int; public var limitehaut:int; public var limitebas:int; //fin des limites fixes public var largeurecran:Number; //largeur de base du swf public var hauteurecran:Number; //hauteur de base du swf public var baselargplan:Number; //la largeur de base du plan au début de la movie public var basehautplan:Number; //la hauteur de base du plan public var basebarrenavigl:Number; //largeur base barre navig zoom en bas public var basebarrenavigh:Number; //hauteur barre navig private var maxzoom=17; // le zoom maxi private var oldmaxzoom:Number; // ancien zoom max private var minzoom=6.5; // le zoom mini private var oldminzoom:Number; // ancien zoom min var stopmove:Number = -1; //inter pour stopper défilement public var interplan:Number=1; // inter quel plan on utilise public var quelplan:Number=0; //numero du plan dans tabplan private var container :Sprite; // PAPERVISION DEBUT private var scene :MovieScene3D; private var camera :FreeCamera3D; private var sphere:Sphere; private var plan1:Plane; private var logo:Plane; private var imageplate:Plane; public var textureprov:BitmapFileMaterial; //les textures pour PAPERVISION //public var mamoviematerial:MovieMaterial; public var textureboutonmp3:BitmapFileMaterial; public var textureboutonvideo:BitmapFileMaterial; public var textureboutonsortir:BitmapFileMaterial; public var texturebouton:BitmapFileMaterial; public var texturecliquez:BitmapFileMaterial; public var textureinfo:BitmapFileMaterial; public var texturelogo:BitmapFileMaterial; // fin textures PAPERVISION //----------------------------------- PAPERVISION FIN ----------------------------- public var bulletravail:BulleInfo; //la bulle de travail public var bulleinfo:BulleInfo; //la bulle sous les hotspots (nom de la piece) public var bulleaide:BulleAide; //le bouton AIDE en haut a gauche public var mabullenet:Bullenetdef; //bulle aide2 public var ratiosouris:Number=90; public var interaideouvert:Number=-1; // inter aide ouverte fermée public var bulleinfositu:BulleAide150; // la bulle INFORMATION texte html explication associé a un hotspot public var pleinecran:BulleInfobouton; // plein écran version texte ancien systeme public var tabboutch:Array= new Array(15); // TABLEAU pour 15 hotspot dans piece public var tabadeplacer:Array= new Array(); // TABLEAU pour le déplaceurr d'objet 2d a mimi public var tabattentedep:Array= new Array(); public var tabadeplacer2d:Array= new Array(); public var tabattentedep2d:Array= new Array(); // FIN TABLEAUX déplaceur public var bullecharge:BulleCharge; // progression chargement en % var barrecharge:barrechargement; // progression barre graphique verte var barrechargefond:barrechargementfond; // graphisme fond barre chargement var image2d:ChargeFichier; // IMAGE2d les images en 2d serront associées ici var piece2d:ChargeFichier; // IMAGE2d NAVIGABLES a plat PIECES dont MAXROTDroite>360 var boutonclignoplan:boutonchaud2; // le rond rouge sur le bouton ou on est dans le plan public var interchargement:Number=0; // public var timerchargement:Timer; //le timer quand le chargement fouare délai 5 sec public var quellepiece:String; //--------- la piece dans laquelle on est actuelement public var anciennepiece:String; // piece précédente public var numpieceactu:Number=0; public var leplan:chargeplan; // le plan public var decalagefleche:Number; // décalage de rotation pour la flèche dans le plan var cacheplanutil:Number=1; //le client a choisit de voir le plan var planvisible:Number=1; //inter plan visi ou non public var boutonfermeplan:BulleAide; // bouton texte pour fermer/ouvrir le plan public var tabboutplan:Array= new Array(tabpiece.length); //TABLEAU des boutons du plan public var monbouton:boutonchaud2; //bouton cercle sur le plan indiquant la pièce public var notemusiquecp:boutonmp3cp; //la movie note musique pour texture bouton mp3 musique public var barreinteractive:Barreinteractive; //------------- barre interactive et boutons zoom --------------- public var boutonzoomplus:lezoomplus; //bouton zoom + public var boutonzoommoins:lezoommoins; //bouton zoom - public var valzoommodif:Number=0; // vitesse du zoom progressif public var boutonpleinecran:lepleinecran; //bouton plein écran var rotxretour:Number= 0; //l'angle de la camera pour quand on retourne en arriere pour les pieces sous forme de imge 2d ou plane 2d var rotyretour:Number= 0; var zoompourcent:Number; // valeur du zoom en % public var bulleinfozoom:BulleInfobouton; // Bulle AFFICHAGE de la VALEUR du ZOOM public var lelogopc74:logopc74; //logo pc74.com au plafond public var flechedefilement1:infodefilement; //la rosace de défilement qui apparait quand on bouge(petite crix jaune dynamique public var macroixcentre:croixcentre; //la croix au centre pour travailler public var myComboBox:ComboBox ; //la liste des pieces combobox public var comptetemps:Number=0; //compteur de temps pour visite auto var sensrotauto:Number=.6; // sens rotation visite auto public var lecteurmp3:ChargeFichierMp3; // le lecteur mp3 public var boutonmp3:boutonmp3cp; //la note de musique pour test public var lecteurvideo:Chargevideo;// lecteur video public var jesuisenfullscreen:Number=-1; //on démarre en écran=fenetre //*************************************************************************************** fin decla variables public function VisionneuseSphereclicsimpleok() { //---------------------- création des composants et objets déclarés ci dessus --------- timerchargement = new Timer(5000); largeurecran=stage.stageWidth; hauteurecran=stage.stageHeight; stage.scaleMode =StageScaleMode.NO_SCALE; //StageScaleMode.EXACT_FIT; lelogopc74= new logopc74(); quellepiece=tabpiece[0][1]; //-------------------------------------dire dans quelle piece on est anciennepiece=quellepiece; //--------------------------------- la liste des pieces combobox ------------------ myComboBox = new ComboBox(); for(var toto:Number=0;toto11) myComboBox.rowCount=10 myComboBox.width = 200; myComboBox.move(largeurecran/2-75, 0); myComboBox.addEventListener(Event.CHANGE, changeimgcombo); //--------------------------- image 2d pour info ---------------- image2d= new ChargeFichier("assets/bouton1vert.png"); image2d.x=stage.stageWidth+700; image2d.y=20; //--------------------------- image 2d NAVIGABLE PIECE pour tableaux et image a plat---------------- piece2d= new ChargeFichier("assets/bouton1vert.png"); piece2d.x=stage.stageWidth+30; piece2d.y=20; //------------------------------ barre chargement ---------------------- barrecharge= new barrechargement(); barrecharge.width=7; barrechargefond= new barrechargementfond(); barrecharge.y=-500; //----------------------------- la rosace qui dit si défilement possible dans tel ou tel direction flechedefilement1 = new infodefilement(); flechedefilement1.x=-150; flechedefilement1.y=-500; flechedefilement1.alpha=.75; //--------------------------- le plan et ses boutons -------------- leplan= new chargeplan(); leplan.alpha=.85; leplan.lafleche.x=tabpiece[0][3]; leplan.lafleche.y=tabpiece[0][4]; leplan.lafleche.rotation=tabpiece[0][5]; //leplan.monplan.chargeimage2d(tabplan[0][1]); // charge le plan de la première piece baselargplan=tabplan[0][2]; basehautplan=tabplan[0][3]; //leplan.width=30; //leplan.height=25; leplan.x=0; leplan.y=hauteurecran-basehautplan; boutonfermeplan= new BulleAide(); // bouton fermer plan boutonfermeplan.setLabel("F
E
R
M
E
R"); boutonfermeplan.x=0; boutonfermeplan.y=hauteurecran-boutonfermeplan.height; boutonfermeplan.alpha=100; decalagefleche=tabpiece[0][5]; //decalagerot fleche boutonclignoplan= new boutonchaud2(); //bouton clignotant dans plan boutonclignoplan.x=tabpiece[0][3]; boutonclignoplan.y=tabpiece[0][4]; //------------------------ fixer les limites au défilement ----------------- MAX_X_ROTATIONHAUT=tabpiece[0][8]; MAX_X_ROTATIONBAS=tabpiece[0][9]; MAX_Y_ROTATIONG=tabpiece[0][6]; MAX_Y_ROTATIOND=tabpiece[0][7]; limitehaut=tabpiece[0][8]; limitebas=tabpiece[0][9]; limitegauche=tabpiece[0][6]; limitedroite=tabpiece[0][7]; minzoom=tabpiece[0][10]; maxzoom=tabpiece[0][11]; //-------------------------- bulle info ZOOM sa valeur dans barre navig --------------- bulleinfozoom=new BulleInfobouton("bulleinfozoom",0x1133dd,"arial"); bulleinfozoom.setLabel("zoom : 100 %"); bulleinfozoom.x=110; //(largeurecran-bulleinfozoom.width)/2-30; bulleinfozoom.y=17; //hauteurecran- bulleinfozoom.height; bulleinfozoom.alpha=.8; //------------------------------- bulle de TRAVAIL ------------------------------------- bulletravail = new BulleInfo(); bulletravail.x=largeurecran/2; bulletravail.y=hauteurecran/2; //------------------------- barre de navigation en bas ------------------------- barreinteractive= new(Barreinteractive); barreinteractive.x=(largeurecran-barreinteractive.width)/2; barreinteractive.y=hauteurecran-barreinteractive.height; basebarrenavigl= barreinteractive.width; basebarrenavigh= barreinteractive.height; boutonzoomplus=new lezoomplus(); boutonzoomplus.x=75; boutonzoomplus.y=9; boutonzoommoins=new lezoommoins(); boutonzoommoins.x=153; boutonzoommoins.y=9; boutonpleinecran= new lepleinecran(); boutonpleinecran.x=7; boutonpleinecran.y=10; barreinteractive.addChild(boutonzoomplus); barreinteractive.addChild(boutonzoommoins); barreinteractive.addChild(boutonpleinecran); barreinteractive.addChild(bulleinfozoom); boutonzoomplus.addEventListener( MouseEvent.MOUSE_DOWN, cliczoomplus); boutonzoomplus.addEventListener( MouseEvent.MOUSE_UP, stopzoom); boutonzoomplus.addEventListener( MouseEvent.MOUSE_OUT, stopzoom); boutonzoomplus.addEventListener( MouseEvent.MOUSE_OVER, focuszoomplus); boutonzoomplus.addEventListener( MouseEvent.MOUSE_OUT, finfocuszoom); boutonzoommoins.addEventListener( MouseEvent.MOUSE_DOWN, cliczoommoins); boutonzoommoins.addEventListener( MouseEvent.MOUSE_UP, stopzoom); boutonzoommoins.addEventListener( MouseEvent.MOUSE_OUT, stopzoom); boutonzoommoins.addEventListener( MouseEvent.MOUSE_OVER, focuszoommoins); boutonzoommoins.addEventListener( MouseEvent.MOUSE_OUT, finfocuszoom); boutonpleinecran.addEventListener( MouseEvent.CLICK, clickpleinecran); boutonpleinecran.addEventListener( MouseEvent.MOUSE_OVER, focuspleinecran); boutonpleinecran.addEventListener( MouseEvent.MOUSE_OUT, finfocuszoom); //---------------------------- lecteur mp3 --------------------------------------- lecteurmp3 = new ChargeFichierMp3(); lecteurmp3.x=-500; lecteurmp3.y=-500; lecteurmp3.alpha=.96; boutonmp3 = new boutonmp3cp(); boutonmp3.x=largeurecran-boutonmp3.width-25; boutonmp3.y=0; //-------------------------- lecteur video -------------------------------------- lecteurvideo = new Chargevideo(); lecteurvideo.x=20; lecteurvideo.y=30; //---------------------------- fin barre de navigation en bas ---------------------- bullecharge = new BulleCharge(); // barre de chargement bullecharge.x =-100; bullecharge.y =-500; bullecharge.alpha=.8; macroixcentre= new croixcentre(); // croix au centre pour travail macroixcentre.x=largeurecran/2; macroixcentre.y=hauteurecran/2; pleinecran= new BulleInfobouton("pleinecran"); // plein écran version texte ancien systeme pleinecran.setLabel("Plein écran"); //---------------------------------- les boutons sur le plan ----------------------------- for(var t=0;tAide "); mabullenet = new Bullenetdef(); bulleaide.alpha=100; //************************************************************************ //****************************** début 3D ************************************************** //************************************************************************ container = new Sprite(); container.x = stage.stageWidth/2; container.y = stage.stageHeight/2; addChild( container ); scene = new MovieScene3D( container ); camera = new FreeCamera3D(); camera.z = 0; camera.zoom = minzoom; camera.focus = 60; //------------------ TEXTURES 3d ----------------- /* notemusiquecp= new boutonmp3cp(); mamoviematerial = new MovieMaterial(notemusiquecp); mamoviematerial.animated = true; mamoviematerial.smooth = true; */ textureprov = new BitmapFileMaterial(VisionneuseSphereclicsimpleok.CHEMIN_IMAGES+tabpiece[0][1]); textureprov.doubleSided = true; textureprov.smooth = true; //timerchargement.addEventListener(TimerEvent.TIMER, probchargementHandler); //timerchargement.start(); textureboutonmp3 = new BitmapFileMaterial(VisionneuseSphereclicsimpleok.CHEMIN_IMAGES+"boutonmp3.png"); textureboutonmp3.doubleSided = true; textureboutonmp3.smooth = true; textureboutonvideo = new BitmapFileMaterial(VisionneuseSphereclicsimpleok.CHEMIN_IMAGES+"boutonvideo.png"); textureboutonvideo.doubleSided = true; textureboutonvideo.smooth = true; texturebouton = new BitmapFileMaterial(VisionneuseSphereclicsimpleok.CHEMIN_IMAGES+"bouton1vert.png"); texturebouton.doubleSided = true; texturebouton.smooth = true; textureboutonsortir = new BitmapFileMaterial(VisionneuseSphereclicsimpleok.CHEMIN_IMAGES+"boutonsortir.png"); textureboutonsortir.doubleSided = true; textureboutonsortir.smooth = true; texturecliquez = new BitmapFileMaterial(VisionneuseSphereclicsimpleok.CHEMIN_IMAGES+"bouton1vertb.png"); texturecliquez.doubleSided = true; texturecliquez.smooth = true; textureinfo = new BitmapFileMaterial(VisionneuseSphereclicsimpleok.CHEMIN_IMAGES+"boutoninfo.png"); textureinfo.doubleSided = true; textureinfo.smooth = true; texturelogo = new BitmapFileMaterial(VisionneuseSphereclicsimpleok.CHEMIN_IMAGES+"papillon-logo.png"); texturelogo.doubleSided = false; texturelogo.smooth = true; //------------------------- OBJETS 3d : plane sphere.... ------------------ plan1 = new Plane( texturebouton, 320, 220, 6, 6 ); plan1.z=800; plan1.y=0; //scene.addChild(plan1); logo = new Plane( texturelogo, 200, 191, 4, 4); // logo pc 74 au plafond logo.z=0; logo.y=0; logo.rotationX=90; logo.x=0; if (jeveuxlogoplafond==1) scene.addChild(logo); //deplacestart("logo",logo.x,logo.y,logo.z,logo.x,400,logo.z,5,0,0,0) //------------------ les images a plat sur plane 3d--------------------------- imageplate = new Plane( textureprov, 800, 700, 8, 8 ); imageplate.z=0; imageplate.x=0; if(tabpiece[0][6]>-360) imageplate.y=1200; else {imageplate.y=0; imageplate.lookAt(camera); } //scene.addChild(imageplate); //-------------------------- LA SPHERE ------------------------- sphere = new Sphere( textureprov , 1000, 30, 30); scene.addChild( sphere ); //***************************** création 15 hotspot 3d dans un tableau contenant les objets //trace("quelle piece="+quellepiece); for(var i=0;i<15;i++) {tabboutch[i]=new Plane( texturebouton, 40, 20, 4, 4 ); //taille des hotspot 3d et facettes tabboutch[i].x=0; tabboutch[i].y=1100; tabboutch[i].z=0; tabboutch[i].name="boutchaud"+i; scene.addChild( tabboutch[i] ); tabboutch[i].container.addEventListener( MouseEvent.CLICK,clicklaplane ); tabboutch[i].container.addEventListener( MouseEvent.MOUSE_OVER,focusSouris ); tabboutch[i].container.addEventListener( MouseEvent.MOUSE_OUT,finfocusSouris ); } // attribution des valeurs des hotspot dans la premiere piece var compteur=0; //quelle bouton chaud plane on utilise for (var r=0;r"+lelogopc74.width); }// fin fonction main : constructeur //************************************************************************************************* *************** //************************************************************************************************* *************** //***************************************************************************************************************** //************************************************* ENTER FRAME tourne en boucle vitesse du nbrips ******************* //************************************************************************************************* *************** //************************************************************************************************* *************** private function gereonEnterFrame( event: Event ): void { //---------------------------- ROUTINES DE DEPLACEMENT OBJET 2D et 3D a mimi --------------- gestiondesdeplacements(); var interstop:Number=1; //inter pour savoir si le zoom est activé par souris ou par clic bouton if(valzoommodif==-2) //souris molette {valzoommodif=-1; interstop=6; } else if(valzoommodif==2) //souris molette zoom+ {valzoommodif=1; interstop=6; } if(valzoommodif==-1) {if(camera.zoom>minzoom) {camera.zoom -=.25*interstop;//camera.moveForward(5); if(limitehaut!=90) {MAX_X_ROTATIONHAUT=MAX_X_ROTATIONHAUT+.42*interstop; MAX_X_ROTATIONBAS=MAX_X_ROTATIONBAS-.42*interstop; if(camera.rotationX>MAX_X_ROTATIONHAUT) camera.rotationX=MAX_X_ROTATIONHAUT; if(camera.rotationX<=MAX_X_ROTATIONBAS) camera.rotationX=MAX_X_ROTATIONBAS; }//trace("cam rot="+camera.rotationX+" max rotbas="+MAX_X_ROTATIONBAS); if(limitegauche!=360) {MAX_Y_ROTATIOND=MAX_Y_ROTATIOND+.42*interstop; MAX_Y_ROTATIONG=MAX_Y_ROTATIONG-.42*interstop; if(camera.rotationY>MAX_Y_ROTATIOND) camera.rotationY=MAX_Y_ROTATIOND; if(camera.rotationY<=MAX_Y_ROTATIONG) camera.rotationY=MAX_Y_ROTATIONG; //trace("correction angle"); } } else {valzoommodif=0; for(var gt:Number=0;gtplane {if(Math.abs(container.mouseX/30)>.3) imageplate.x -= (container.mouseX)/30; if( piece2d.x> MAX_Y_ROTATIOND) {piece2d.x = MAX_Y_ROTATIOND; flechedefilement1.fleched.visible=false; } else flechedefilement1.fleched.visible=true; if( piece2d.x .3) piece2d.y += (container.mouseY)/30; if( piece2d.y< MAX_X_ROTATIONHAUT) {flechedefilement1.flecheh.visible=false; piece2d.y = MAX_X_ROTATIONHAUT; } else flechedefilement1.flecheh.visible=true; if( piece2d.y >MAX_X_ROTATIONBAS) {flechedefilement1.flecheb.visible=false; piece2d.y = MAX_X_ROTATIONBAS; } else flechedefilement1.flecheb.visible=true; } else //panoramique ou limit spherique {if(Math.abs(container.mouseX/(ratiosouris+zoompourcent+1))>.1) {camera.rotationY += container.mouseX/(ratiosouris+zoompourcent+1); } if(Math.abs(container.mouseY/(ratiosouris+zoompourcent+1))>.1) {camera.rotationX -= container.mouseY/(ratiosouris+zoompourcent+1); } // trace("rotation="+(container.mouseX)/60); //on limite la rotation horizontale if(MAX_Y_ROTATIOND!=360) {if(camera.rotationY> MAX_Y_ROTATIOND) {flechedefilement1.fleched.visible=false; camera.rotationY = MAX_Y_ROTATIOND; } else flechedefilement1.fleched.visible=true; if(camera.rotationY MAX_X_ROTATIONHAUT) {flechedefilement1.flecheh.visible=false; camera.rotationX = MAX_X_ROTATIONHAUT; } else flechedefilement1.flecheh.visible=true; if(camera.rotationX MAX_Y_ROTATIOND) {camera.rotationY=MAX_Y_ROTATIOND; sensrotauto=-sensrotauto; } else if(camera.rotationY= "+MAX_Y_ROTATIOND); } comptetemps++; //compteur if(comptetemps>600) // 1 tour en 15 secondes {comptetemps=380; // attend 1/2 sec quand change de piece auto changepieceauto(); stopmove=-1; sensrotauto=-sensrotauto; } if (camera.rotationX>tabpiece[numpieceactu][14]) //ramene camera a plat {camera.rotationX -=.3; if(camera.rotationXtabpiece[numpieceactu][14]) camera.rotationX=tabpiece[numpieceactu][14]; } if(camera.zoom>minzoom) //ramene le zoom a 0% {camera.zoom -=.1; if(camera.zoom400) // ------------------------------------------------ Demmarage rotation automatique 10 sec {comptetemps=0; stopmove=2; //camera.rotationX=0; trace("ok timer deplacement auto"); } /*if((interplan==1)&&(leplan.x<-20))//cache plan {stopdep2d("leplan"); deplacestart2d("leplan",leplan.x,leplan.y,-10,leplan.y,.4,0,100,100,0); deplacestart2d("boutonfermeplan",boutonfermeplan.x,boutonfermeplan.y,5,boutonfermeplan.y,.4,0,100,100,0); //visible bouton fermeplan } */ } if(chargement==1) //-----------------------------------------chargement en cour ---------------------- {//plan1.x =Math.sin(camera.rotationY/180*3.14)*350; //plan1.y =Math.sin(camera.rotationX/180*3.14)*350; //plan1.z =Math.cos(camera.rotationY/180*3.14)*350; //plan1.rotationY +=6; //if (plan1.rotationX>24) sensrotcharge=-sensrotcharge; //else if(plan1.rotationX<-24) sensrotcharge=-sensrotcharge; //plan1.rotationX +=sensrotcharge; bullecharge.setLabel(Math.round(textureprov.pourcentprogression)+" %"); bullecharge.x=300; bullecharge.y=70; barrecharge.x=260; barrecharge.y=110; barrechargefond.x=barrecharge.x-5; barrechargefond.y=110; barrecharge.width=Math.round(textureprov.pourcentprogression)*2; if((textureprov.totalpoidsfichier==poidsfichier)&&(intersecu==0)) {intersecu=1; //trace("OK SECU=>"+textureprov.totalpoidsfichier+" == "+poidsfichier+" "+tabpiece[0][1]+" == "+quellepiece); } else if(intersecu==0) {trace("SECU ERREUR=>"+textureprov.totalpoidsfichier+" != "+poidsfichier+" "+tabpiece[0][1]+" == "+quellepiece); intersecu=0; }//plan1.lookAt(camera); if(textureprov.loaded==true) //------------------------------- chargement terminé ---------------- {trace("CHARGé "+quellepiece+" "+textureprov.totalpoidsfichier); if (intersecu==0) camera.rotationZ=23; if(bulleinfositu.x0) leplan.monplan.removeChildAt(leplan.monplan.numChildren-1); if(quelplan==-1) //pas de plan associé a l'image {leplan.visible=false; boutonfermeplan.visible=false; baselargplan=tabplan[0][2]; //prends taille premier plan num 0 basehautplan=tabplan[0][3]; interplan=-1; } else //un plan associé {leplan.monplan.chargeimage2d(tabplan[quelplan][1]); // charge le plan de la première piece if(cacheplanutil==1) {leplan.visible=true; } else leplan.visible=false; interplan=1; //trace("cahe plan util="+cacheplanutil); boutonfermeplan.visible=true; baselargplan=tabplan[quelplan][2]; basehautplan=tabplan[quelplan][3]; } //if(stage.displayState=="fullScreen") // {leplan.width=250; // } if(interplan==1) {trace("AFFICHE PLAN : l= "+baselargplan+" h= "+basehautplan); //leplan.width=baselargplan; //leplan.height=basehautplan; if(stage.displayState=="fullScreen") {leplan.x=-(stage.stageWidth-largeurecran)/2; leplan.y=hauteurecran+(stage.stageHeight-hauteurecran)/2-basehautplan; boutonfermeplan.x=-(stage.stageWidth-largeurecran)/2; boutonfermeplan.y=hauteurecran+(stage.stageHeight-hauteurecran)/2-boutonfermeplan.height; } else {leplan.x=0; leplan.y=hauteurecran-basehautplan; boutonfermeplan.x=0; boutonfermeplan.y=hauteurecran-boutonfermeplan.height; } } else {stopdep2d("leplan"); leplan.x=-200;//basehautplan; } trace("plan visible="+interplan+" pos plan="+leplan.y+" hauteurecran="+hauteurecran); //---------------------------------- les boutons sur le plan ----------------------------- for(var t=0;t0) sensrotauto=.6; else sensrotauto=-.6; if(calcul<50) {sensrotauto=sensrotauto/3; ratiosouris=ratiosouris*3; } else if(calcul<179) {sensrotauto=sensrotauto/2; ratiosouris=ratiosouris*2.5; } else {if (sensrotauto>0) sensrotauto=.6; else sensrotauto=-.6; ratiosouris=90; } } else {if (sensrotauto>0) sensrotauto=.6; else sensrotauto=-.6; ratiosouris=90; } trace("sensrotauto="+sensrotauto+" calcul="+calcul+" tabpiece[a][6]="+tabpiece[a][6]); camera.rotationY=tabpiece[a][13]; camera.rotationX=tabpiece[a][14];//camera.rotationX=rotyretour; leplan.lafleche.rotation = camera.rotationY+decalagefleche; for( var j=0;jF
E
R
M
E
R"); boutonfermeplan.x=0; boutonfermeplan.y=hauteurecran-boutonfermeplan.height; barreinteractive.y=hauteurecran-barreinteractive.height; lelogopc74.x=largeurecran-17; lelogopc74.y=0; myComboBox.y=0;//myComboBox.y+(stage.stageHeight-hauteurecran)/2; bulleaide.y=0; bulleaide.x=0; if(lecteurmp3.getlectureencour()==1) lecteurmp3.y=0; else lecteurmp3.y=-600; maxzoom=oldmaxzoom; minzoom=oldminzoom; //camera.zoom=minzoom; for (var u=0;uINFO :

"+tabbout[numboutonchaud][8]+"

Cliquez pour fermer.
");//trace("type bouton ==================== "+tabbout[numboutonchaud][5]+" *action="+quelleaction+"*************"); } else { quiacharger=event.target.quioncharge; changecombo=1; } // ------------------------------ gestion combobox trace("charge=>"+quiacharger); var nouvellepiece:Number=0; // num piece pour combobox for (var dd:Number=0;dd0) image2d.removeChildAt(image2d.numChildren-1); image2d.chargeimage2d(image2dacharger); } else {if (image2d.x0) image2d.removeChildAt(image2d.numChildren-1); //image2d.chargeimage2d("assets/vide.png") ; } /* trace("nbr enfants="+image2d.numChildren); for(var q=0;q>>>>>>>>"+image2d.getChildAt(0).name+" "+image2d.getChildAt(1).name); // ball_A */ } else if (quelleaction=="mp3") {//.numChildren //trace("chargement mp3 en cours="+); if(lecteurmp3.getlectureencour()==0) {lecteurmp3.changemp3("assets/"+quiacharger); if(stage.displayState=="fullScreen") {lecteurmp3.x=-(stage.stageWidth-largeurecran)/2+60; lecteurmp3.y=-(stage.stageHeight-hauteurecran)/2; } else {lecteurmp3.x=60; lecteurmp3.y=0; } } } else if (quelleaction=="video") {if(bulleinfositu.xP
L
A
N
"); stopdep2d("leplan");//leplan.alpha=0; if(stage.displayState=="fullScreen") xarrive=xarrive-(stage.stageWidth-largeurecran)/2; trace("fermer plan : xarrive= "+xarrive+" pour plan"+leplan.x); //leplan.visible=false; deplacestart2d("leplan",leplan.x,leplan.y,xarrive,leplan.y,.6,0,100,100,0) } else {//leplan.alpha=.75; //trace("ON OUVRE CETTE DAUBE DE PLAN :-10"); xarrive=20; leplan.visible=true;// stopdep2d("leplan"); if(stage.displayState=="fullScreen") xarrive=xarrive-(stage.stageWidth-largeurecran)/2; trace("xarrive= "+xarrive+" pour plan"); deplacestart2d("leplan",leplan.x,leplan.y,xarrive,leplan.y,.6,0,100,100,0); boutonfermeplan.setLabel("F
E
R
M
E
R"); } planvisible=-planvisible; interplan=-interplan; } /*public function focusFermePlan(event:MouseEvent):void {trace("boutplan="+boutonfermeplan.monnom); trace("this focus="+event.target.name); //event.target.setcoulFond(0xffaabb); } public function finfocusFermePlan(event:MouseEvent):void { } */ public function focusboutonplan(event:MouseEvent):void { //trace("BOUTONCHAUD qu'on a cliqué n°"+event.target.name); // trace("qui plan="+event.target.numpiece); //var texteinfo:String=tabpiece[event.target.name][7]; bulleinfo.setLabel(event.target.texteinfobulle); //stopmove=-stopmove; //.removeChildAt(0); bulleinfo.x=stage.mouseX+20; bulleinfo.y=stage.mouseY; tabboutplan[event.target.numpiece].width +=8; tabboutplan[event.target.numpiece].height +=8; } public function finfocusboutonplan(event:MouseEvent):void { //trace("BOUTONCHAUD qu'on a cliqué n°"+event.target.name); // trace("qui plan="+event.target.numpiece); tabboutplan[event.target.numpiece].width -=8; tabboutplan[event.target.numpiece].height -=8; bulleinfo.x=-600; bulleinfo.y=-1000; } //------------------------- fermer info --------------------- public function fermeinfositu(event:MouseEvent):void {deplacestart2d("bulleinfositu",bulleinfositu.x,bulleinfositu.y,stage.stageWidth+700,bulleinfositu.y,.3,0,100,100); deplacestart2d("image2d",image2d.x,image2d.y,stage.stageWidth+700,image2d.y,.5,0,100,100); if(image2d.numChildren>1) image2d.removeChildAt(image2d.numChildren-1); } //------------------------- fermer aide --------------------- public function fermeaide(event:MouseEvent):void {if(interaideouvert==1) //c'est ouvert on ferme {//stopdep2d("bulleaide"); bulleaide.setLabel("Aide"); //deplacestart2d("bulleaide",bulleaide.x,bulleaide.y,0,bulleaide.y,.4,0,100,100); if(stage.displayState=="fullScreen") bulleaide.y=-(stage.stageHeight-hauteurecran)/2; else bulleaide.y=0; } else {//stopdep2d("bulleaide"); //deplacestart2d("bulleaide",bulleaide.x,bulleaide.y,10,bulleaide.y,.3,0,100,100); //voir aide bulleaide.setLabel(texteaide); //else bulleaide.setLabel("En PAUSE :
"); bulleaide.y=bulleaide.y+myComboBox.height; //else bulleaide.y=0;bulleaide.y=; } interaideouvert= -interaideouvert; // bifurque l'inter aide ouverte/fermée //trace("clic bulle aide"); } //------------------------- video erreur synchro ------------------------------- function asyncErrorHandler(event:AsyncErrorEvent):void {trace("erreur sync"); // ignorer une erreur } //--------------------------------- FULL SCreeen ------------------------ event function clickpleinecran(event:MouseEvent) {//planvisible=-1; if(stage.displayState=="fullScreen") {// stage.displayState = StageDisplayState.NORMAL; } else {jesuisenfullscreen=-jesuisenfullscreen; stage.displayState = StageDisplayState.FULL_SCREEN; leplan.x=leplan.x-(stage.stageWidth-largeurecran)/2; leplan.y=hauteurecran+(stage.stageHeight-hauteurecran)/2-basehautplan; //boutonfermeplan.setLabel("F
E
R
M
E
R"); boutonfermeplan.x=-(stage.stageWidth-largeurecran)/2; boutonfermeplan.y=hauteurecran+(stage.stageHeight-hauteurecran)/2-boutonfermeplan.height; lelogopc74.x=largeurecran+(stage.stageWidth-largeurecran)/2-17; lelogopc74.y=-(stage.stageHeight-hauteurecran)/2; //bulleaide.setLabel("PLEIN ECRAN CLIC"); //barreinteractive.height=barreinteractive.height/2; barreinteractive.y=stage.stageHeight-barreinteractive.height-(stage.stageHeight-hauteurecran)/2; myComboBox.y=myComboBox.y-(stage.stageHeight-hauteurecran)/2; if(lecteurmp3.getlectureencour()==1) lecteurmp3.y=lecteurmp3.y-(stage.stageHeight-hauteurecran)/2; else lecteurmp3.y=-600; lecteurmp3.x=lecteurmp3.x-(stage.stageWidth-largeurecran)/2; //bulleaide.setLabel("y="+myComboBox.y+" : stage="+stage.stageWidth+"-"+stage.stageHeight); bulleaide.x=bulleaide.x-(stage.stageWidth-largeurecran)/2; bulleaide.y=bulleaide.y-(stage.stageHeight-hauteurecran)/2; //barreinteractive.y=stage.stageHeight-barreinteractive.height; maxzoom=maxzoom-12; minzoom=oldminzoom+4; camera.zoom=minzoom; for (var u=0;u0) {for(var t2=0;t2 "+this[objet2d].x+" x "+this[objet2d].y+" desti x y= "+tabadeplacer2d[r][8]+" "+tabadeplacer2d[r][7]+" vitessex= "+tabadeplacer2d[r][1]+" vitessey= "+tabadeplacer2d[r][2] ); this[objet2d].x +=tabadeplacer2d[r][1]; this[objet2d].y +=tabadeplacer2d[r][2]; //trace("Apres dep objet a dep="+tabadeplacer2d[r][0]+"====> "+this[objet2d].x+" x "+this[objet2d].y ); //this[objet2d].alpha +=tabadeplacer2d[r][4]; //this[objet].rotation +=tabadeplacer2d[r][5]; //this[objet].rotationZ +=tabadeplacer2d[r][6]; tabadeplacer2d[r][6] -=1; //decremente compteur deplacement if(tabadeplacer2d[r][6]<=0) {this[objet2d].x =tabadeplacer2d[r][7]; this[objet2d].y =tabadeplacer2d[r][8]; tabadeplacer2d.splice(r,1); //supprime entrée dans tableau dep //trace("deplacement 2D fini "); for(var c=0;c "+tabadeplacer[r][7]+" vitessex="+tabadeplacer[r][1] ); this[objet].x +=tabadeplacer[r][1]; this[objet].y +=tabadeplacer[r][2]; this[objet].z +=tabadeplacer[r][3]; this[objet].rotationX +=tabadeplacer[r][4]; this[objet].rotationY +=tabadeplacer[r][5]; this[objet].rotationZ +=tabadeplacer[r][6]; tabadeplacer[r][7] -=1; //decremente compteur deplacement if(tabadeplacer[r][7]<0) {tabadeplacer.splice(r,1); //supprime entrée dans tableau dep //trace("deplacement fini"); for( c=0;c