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;gt-50)) //RENDRE INVISIBLE
{stopdep2d("leplan");
deplacestart2d("leplan",leplan.x,leplan.y,-leplan.width,leplan.y,.4,0,100,100,0);
deplacestart2d("boutonfermeplan",boutonfermeplan.x,boutonfermeplan.y,-150,boutonfermeplan.y,.4,0,100,100,0); //visible bouton fermeplan
}
*/
//Mouse.hide();
flechedefilement1.x=largeurecran-flechedefilement1.width-20;
flechedefilement1.y=40;//hauteurecran-flechedefilement1.height-20;
// flechedefilement1.x=stage.mouseX;
// flechedefilement1.y=stage.mouseY;
if(MAX_Y_ROTATIONG<-360) //image plate=>plane
{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