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="aide ouvert
coucou"; //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 //*************************************************************************************** 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+30; 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=.95; //leplan.width=Math.round(leplan.width/4*3); //leplan.height=Math.round(leplan.height/4*3); 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.x=0; leplan.y=stage.stageHeight-basehautplan; boutonfermeplan= new BulleAide(); // bouton fermer plan boutonfermeplan.setLabel("F
E
R
M
E
R"); boutonfermeplan.x=0; boutonfermeplan.y=stage.stageHeight-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, 55, 33, 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) {leplan.visible=false; boutonfermeplan.visible=false; baselargplan=tabplan[0][2]; basehautplan=tabplan[0][3]; } else {leplan.monplan.chargeimage2d(tabplan[quelplan][1]); // charge le plan de la première piece if(cacheplanutil==1) {leplan.visible=true; } else leplan.visible=false; //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) {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); //---------------------------------- 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; lecteurmp3.y=0; 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=0; 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+400,bulleinfositu.y,.3,0,100,100); deplacestart2d("image2d",image2d.x,image2d.y,stage.stageWidth+400,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); 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=myComboBox.height; } 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; // stage.displayState == StageDisplayState.NORMAL if(stage.displayState=="fullScreen") {stage.displayState = StageDisplayState.NORMAL; //pleinecran.setLabel("Plein écran"); leplan.width=baselargplan; leplan.height=basehautplan; leplan.y=hauteurecran-basehautplan; leplan.x=0; boutonfermeplan.x=0; boutonfermeplan.setLabel("F
E
R
M
E
R"); 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; planvisible=1; cacheplanutil=1; interplan=1; bulleaide.y=0; bulleaide.x=0; lecteurmp3.y=0; maxzoom=oldmaxzoom; minzoom=oldminzoom; camera.zoom=minzoom; for (var u=0;uF
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; planvisible=1; cacheplanutil=1; interplan=1; myComboBox.y=myComboBox.y-(stage.stageHeight-hauteurecran)/2; bulleaide.y=bulleaide.y-(stage.stageHeight-hauteurecran)/2; bulleaide.x=bulleaide.x-(stage.stageWidth-largeurecran)/2; lecteurmp3.y=lecteurmp3.y-(stage.stageHeight-hauteurecran)/2; //bulleaide.setLabel("y="+myComboBox.y+" : stage="+stage.stageWidth+"-"+stage.stageHeight); //barreinteractive.y=stage.stageHeight-barreinteractive.height; maxzoom=maxzoom-12; minzoom=oldminzoom+4; camera.zoom=minzoom; for (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