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;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) //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