Problème d'affichage d'un diaporama

Résolu
pat RB Messages postés 30 Date d'inscription jeudi 21 septembre 2006 Statut Membre Dernière intervention 20 janvier 2010 - 19 janv. 2010 à 11:04
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010 - 20 janv. 2010 à 11:26
Bonjour à tous.

J'aurais aimé mettre mon fla ici pour mieux faire comprendre mon problème mais je ne sais pas comment faire.

globalemement, j'ai crée une sorte de diaporama qui en fonction de ce qui est marqué dans une variable, fait un loadMovie de fichiers swf dans 2 clips récepteurs (conteneur1_mc & conteneur2_mc) dont je voulais (mais c'est pas terrible! si vous avez mieux, suis preneur)via un jeu de _alpha, faire comme sur powerpoint des transitions pas brutales.

je pense que je me complique la vie sur mon code, je suis ouvert à toute critique et aide mais c'est pas facile d'expliquer sans donner le code.

Mon problème est que tout marche lorsque je fais un control-entrée (bref publier dans flash8) les swf (photos) remontent très bien et s'affichent nickel.

Mais lorsque je lance mon diaporama depuis mon gestionnaire de fichiers (je double clique dessus sans être dans flash 8, seul les deux premiers swf (photos) remontent et tournent en boucle. pourtant c'est les bons swf qui sont appelés, le code tourne bien mais apparamment c'est l'affichage dans les clips conteneurs qui ne fonctionne pas.

Avez-vous déjà ce problème. Ou celà fonctionne sous flash mais ne marche plus quand on lance le swf direct.

code (frame 1):
var i:Number = 0;
_global.a = 1;
var u:Number = 0;
_global.sens = "plus"
end_diapo._visible = false;
beg_diapo._visible = false;

code (frame 3):
a=Number(a+1)
sens = "plus"
gotoAndPlay (2);

code (frame 4):
a=Number(a-1)
sens = "moins"
gotoAndPlay (2);


code (frame 2) le plus important:
//permet de savoir si le bouton appuyé va vers le haut ou le bas du diaporama
//et lance la fonction test_estimated plus ou test_estimated moins

if (sens === "plus"){
test_estimated_plus ()

}else{
test_estimated_moins ()

}

btn_droit.onRelease = function ()
{
//on appelle la fonction flechedroite qui fait avancer au next slide
flechedroite ()
}


btn_gauche.onRelease = function ()
{
//on appelle la fonction flechegauche qui fait revenir au previous slide
flechegauche ()
}

btn_haut.onRelease = function ()
{
//on appelle la fonction flechehaute qui fait avancer au next slide
flechehaute ()

}

btn_bas.onRelease = function ()
{
//on appelle la fonction flechebasse qui fait avancer au next slide
flechebasse ()
}



function flechedroite () : Void
{
if (a<54){
gotoAndPlay (5)
}else{
end_diapo._visible = true;
}} //end of function flechedroite

function flechegauche () : Void
{
if (a>7){
gotoAndPlay (6)
}else{
beg_diapo._visible = true;
}} //end of function flechegauche




function flechebasse () : Void
{
if (a<59){
gotoAndPlay (3)
}else{
end_diapo._visible = true;
}} //end of function flechebasse


function flechehaute () : Void
{
if (a>2){
gotoAndPlay (4)
}
else{
beg_diapo._visible = true;
}}
//end of function flechehaute


//la fonction "test_estimated_moins" va voir si les variable V1...V60 (dans ("VARIABLES/var_matrix.txt") sont marquées "estimated"
//Si oui, on fait une boucle avec la frame 4 qui diminue la valeur de la variable "a" et la boucle continue tant que V1, V2... renvoi un numéro et non plus "estimated"

function test_estimated_moins () : Void
{
//_global.renvoi_num_layout = num_layout_txt.text;
var _loc8 = new LoadVars();
_loc8.load("VARIABLES/var_matrix.txt");
_loc8.onLoad = function (success)
{
retour_var = this["V"+a]
if (retour_var ==="estimated"){
gotoAndPlay (4)
}else{
afficher_layout()
}}}


function test_estimated_plus () : Void
{
var _loc9 = new LoadVars();
_loc9.load("VARIABLES/var_matrix.txt");
_loc9.onLoad = function (success)
{
retour_var = this["V"+a]
if (retour_var ==="estimated"){
gotoAndPlay (3)
}else{
afficher_layout()
}}}




// l'idée est de faire des transitions moins brutales entre deux images en jouant avec des _alpha mais c'est pas terrible. Si vous avez mieux ?
function afficher_layout () : Void
{

//pour enlever le L devant le layout number qui revient de la variable V1...V60
_global.layout_online = retour_var.substring (1,9)

//pour extraire uniquement le layout number qui revient de la variable V1...V60
_global.layout_seul = retour_var.substring (1,6)


//on remonte le premier plan
conteneur1_mc._x = 0;
conteneur1_mc._y = 40;
conteneur1_mc._xscale = 135;
conteneur1_mc._yscale = 135;

conteneur2_mc._x = 0;
conteneur2_mc._y = 40;
conteneur2_mc._xscale = 135;
conteneur2_mc._yscale = 135;


// ceci est fait pour faire un degradé en alpha du conteneur1 au conteneur2
if (i==0){
conteneur2_mc.loadMovie("layouts_diapo/"+retour_var+".swf");
for (t=0; t<10000; t++){
conteneur2_mc._alpha = t;
conteneur1_mc._alpha = Number(10000-t);
} i++; }

else if (i==1){
conteneur1_mc.loadMovie("layouts_diapo/"+retour_var+".swf");
for (t=0; t<10000; t++){
conteneur2_mc._alpha = Number(10000-t);
conteneur1_mc._alpha = t;
} i--; }

// ici les fleches claviers

var keyListener = new Object();
keyListener.onKeyDown = function ()
{
switch (Key.getCode())
{
case 37:
//fleche clavier gauche
{
flechegauche ()
break; }

case 38:
//fleche clavier haut
{
flechehaute ();
break; }

case 39:
//fleche clavier droite

{
flechedroite ();
break; }

case 40:
//fleche clavier bas
{
flechebasse ();
break; }

} // End of switch
};
Key.addListener(keyListener);

stop();


MERCI A TOUS PAR AVANCE







Faire de la musique, le langage de la solidarité, la devise de notre asso, chez www.msprods.org

4 réponses

crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
20 janv. 2010 à 00:48
Salut,

pourrais-tu indenter ton code en utilisant le code (sans les espaces après et avant [ ] ) :

[ code=as ]

ton code joliment indenté...

[ /code ]

car là j'ai la flemme de traduire.
3
pat RB Messages postés 30 Date d'inscription jeudi 21 septembre 2006 Statut Membre Dernière intervention 20 janvier 2010
20 janv. 2010 à 09:14
Merci Crackter, sympa de t'y pencher, j'ai tout essayé hier, changer les variables, en fait tout marche super bien sous flash (via "publier") mais n'affiche que les 2 premières images quand lancé directement (sous le flash player) voici les codes:

//code (frame 1): 
var i:Number = 0; 
_global.a = 1; 
var u:Number = 0; 
_global.sens = "plus" 
end_diapo._visible = false; 
beg_diapo._visible = false;

//code (frame 3): 
a=Number(a+1) 
sens = "plus" 
gotoAndPlay (2); 

//code (frame 4): 
a=Number(a-1) 
sens = "moins" 
gotoAndPlay (2); 
 


//code (frame 2) le plus important: 

//permet de savoir si le bouton appuyé va vers le haut ou le bas du diaporama (voir frame 1 qui initialise
//et lance la fonction test_estimated plus ou test_estimated moins 

if (sens === "plus"){ 
test_estimated_plus () 

}else{ 
test_estimated_moins () 

} 

btn_droit.onRelease = function () 
{ 
//on appelle la fonction flechedroite qui fait avancer au next slide 
flechedroite () 
} 


btn_gauche.onRelease = function () 
{ 
//on appelle la fonction flechegauche qui fait revenir au previous slide 
flechegauche () 
} 

btn_haut.onRelease = function () 
{ 
//on appelle la fonction flechehaute qui fait avancer au next slide 
flechehaute () 

} 

btn_bas.onRelease = function () 
{ 
//on appelle la fonction flechebasse qui fait avancer au next slide 
flechebasse () 
} 



function flechedroite () : Void 
{ 
if (a<54){ 
gotoAndPlay (5) 
}else{ 
end_diapo._visible = true; 
}} //end of function flechedroite 

function flechegauche () : Void 
{ 
if (a>7){ 
gotoAndPlay (6) 
}else{ 
beg_diapo._visible = true; 
}} //end of function flechegauche 




function flechebasse () : Void 
{ 
if (a<59){ 
gotoAndPlay (3) 
}else{ 
end_diapo._visible = true; 
}} //end of function flechebasse 


function flechehaute () : Void 
{ 
if (a>2){ 
gotoAndPlay (4) 
} 
else{ 
beg_diapo._visible = true; 
}} 
//end of function flechehaute 


//la fonction "test_estimated_moins" va voir si les variable V1...V60 (dans ("VARIABLES/var_matrix.txt") sont marquées "estimated" 
//Si oui, on fait une boucle avec la frame 4 qui diminue la valeur de la variable "a" et la boucle continue tant que V1, V2... renvoi un numéro et non plus "estimated" 

function test_estimated_moins () : Void 
{ 
//_global.renvoi_num_layout = num_layout_txt.text; 
var _loc8 = new LoadVars(); 
_loc8.load("VARIABLES/var_matrix.txt"); 
_loc8.onLoad = function (success) 
{ 
retour_var = this["V"+a] 
if (retour_var ==="estimated"){ 
gotoAndPlay (4) 
}else{ 
afficher_layout() 
}}} 


function test_estimated_plus () : Void 
{ 
var _loc9 = new LoadVars(); 
_loc9.load("VARIABLES/var_matrix.txt"); 
_loc9.onLoad = function (success) 
{ 
retour_var = this["V"+a] 
if (retour_var ==="estimated"){ 
gotoAndPlay (3) 
}else{ 
afficher_layout() 
}}} 




// l'idée est de faire des transitions moins brutales entre deux images en jouant avec des _alpha mais c'est pas terrible. Si vous avez mieux ? 
function afficher_layout () : Void 
{ 

//pour enlever le L devant le layout number qui revient de la variable V1...V60 
_global.layout_online = retour_var.substring (1,9) 

//pour extraire uniquement le layout number qui revient de la variable V1...V60 
_global.layout_seul = retour_var.substring (1,6) 


//on remonte le premier plan 
conteneur1_mc._x = 0; 
conteneur1_mc._y = 40; 
conteneur1_mc._xscale = 135; 
conteneur1_mc._yscale = 135; 

conteneur2_mc._x = 0; 
conteneur2_mc._y = 40; 
conteneur2_mc._xscale = 135; 
conteneur2_mc._yscale = 135; 


// ceci est fait pour faire un degradé en alpha du conteneur1 au conteneur2 
if (i==0){ 
conteneur2_mc.loadMovie("layouts_diapo/"+retour_var+".swf"); 
for (t=0; t<10000; t++){ 
conteneur2_mc._alpha = t; 
conteneur1_mc._alpha = Number(10000-t); 
} i++; } 

else if (i==1){ 
conteneur1_mc.loadMovie("layouts_diapo/"+retour_var+".swf"); 
for (t=0; t<10000; t++){ 
conteneur2_mc._alpha = Number(10000-t); 
conteneur1_mc._alpha = t; 
} i--; } 

// ici les fleches claviers 

var keyListener = new Object(); 
keyListener.onKeyDown = function () 
{ 
switch (Key.getCode()) 
{ 
case 37: 
//fleche clavier gauche 
{ 
flechegauche () 
break; } 

case 38: 
//fleche clavier haut 
{ 
flechehaute (); 
break; } 

case 39: 
//fleche clavier droite 

{ 
flechedroite (); 
break; } 

case 40: 
//fleche clavier bas 
{ 
flechebasse (); 
break; } 

} // End of switch 
}; 
Key.addListener(keyListener); 

stop(); 



MERCI !

Faire de la musique, le langage de la solidarité, notre devise chez www.msprods.org
0
pat RB Messages postés 30 Date d'inscription jeudi 21 septembre 2006 Statut Membre Dernière intervention 20 janvier 2010
20 janv. 2010 à 11:09
re-bonjour,

J'ai essayé sous un autre pc avec flash CS4 (je suis sur . Quand je publie avec flash 9, celà fonctionne très bien. est-ce que quelqu'un
peut m'expliquer. Est-ce que celà veut dire que si l'on n'a pas flash 9 ou plus installé sur son PC, ca ne peut fonctionner?

Merci de m'expliquer s'il vous plait.



Faire de la musique, le langage de la solidarité, notre devise chez www.msprods.org
0
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
20 janv. 2010 à 11:26
salut,

ton code n'est toujours pas indenté.

Pour ce qui est du lecteur, il est normal de devoir installer la version correspondante à celle de ton fichier publié.
0
Rejoignez-nous