Pb mon code ne marche pas avec FlashPlayer7

Pb mon code ne marche pas avec FlashPlayer7 - Flash/ActionScript - Programmation

Marsh Posté le 27-03-2007 à 01:51:56    

Bonjour,
Voilà j'ai un problème de code, il marche très bien en publication FlashPlayer6 et pas du Tout en publication FlashPlayer7. Quelqu'un saurait-il me le coder pour que ça marche avec FlashPlayer7 (j'en ai besoin pour la video), je suis débutante, je ne comprend pas tout le code (je l'ai adapté d'un code de shintu) :
 
C 'est pour une menu déplacable avec un effet d'ondulation. Ce menu est composé d'un bouton "drag" imbriqué dans un mc "op" :  
 
Sur la frame :
 

Code :
  1. fscommand("allowscale", "false" );
  2. stop();
  3. velocita = 1.6;
  4. frenata = 2;


 
Sur le mc :
 
 

Code :
  1. onClipEvent (enterFrame) {
  2. _root.op1.newX = (this._x)+25;
  3. _root.op1.newY = (this._y);
  4. }


 
sur le bouton imbriqué:
 

Code :
  1. on (press) {
  2. startDrag(_root.drag, false, 27, 20, 750, 500);
  3. }
  4. on (release) {
  5. stopDrag();
  6. }


 
lorsqu'on déplace le bouton ("drag" ) il entraine les items du menu "op1", "op2" etc :
 
sur "op1" et adapté à "op2" etc :
 

Code :
  1. onClipEvent (load) {
  2. org_x = this._x;
  3. org_y = this._y;
  4. newX = _x;
  5. newY = _y;
  6. }
  7. onClipEvent (enterFrame) {
  8. Xspeed = ((_x-newX)/_root.velocita+Xspeed)/_root.frenata;
  9. _x -= Xspeed;
  10. Yspeed = ((_y-newY)/_root.velocita+Yspeed)/_root.frenata;
  11. _y -= Yspeed;
  12.   if (velocita<2) {
  13.    velocita=2;
  14. }
  15.   if (frenata<1) {
  16.    frenata=1;
  17. }
  18. _root.op2.newX = (this._x);
  19. _root.op2.newY = (this._y)+25;
  20. }


 
Ce serait vraiment cool que quelqu'un ait une solution ou une piste! Je suis grave en galère. Merci en tout cas pour ce site...

Reply

Marsh Posté le 27-03-2007 à 01:51:56   

Reply

Marsh Posté le 27-03-2007 à 10:33:31    

1. Tu aurais pu trouver un code plus récent :/
2. J'ai testé en Player 9 AS2 et ça semble marcher.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 27-03-2007 à 18:24:42    

Je n'ai rien trouvé de plus récent qui fasse la meme chose : j'ai essayé de le traduire mais je galère pour le code placé sur les items "op1", "op2" etc je ne comprends pas tout!
Mon problème est que dans le meme swf j'ai des videos encodées pour FP7 et ce code et que si je publie en FP6 ce code marche mais plus les videos et si je publie en FP7 c'est ce code qui ne marche plus. J'essaie de trouver un myen de faire marcher ce code avec FP7 mais ca fait 15 jours que je galère : ça ne marche pas!...
Aurais-tu un code identique plus récent que je pourrais adapter? Ou quelqu'un pourrait-il m'aider à le coder pour FP7? On m'a dit que le FP le plus courant est le 7, j'ai essayé avec le 8 ca marche pas non plus. Le 9 va etre trop récent pour ma cible... Donc j'essaie de tout faire marcher avec le 7 mais j'y arrive pas, je t'avoue que je déséspère un peu!

Reply

Marsh Posté le 28-03-2007 à 12:41:32    

N'écoute pas les on m'a dit.
http://www.adobe.com/products/play [...] ation.html
Franchement vu la différence autant faire pour du Flash 8 et puis basta.
 
Pour charger ta vidéo t'utilise quoi ?


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 29-03-2007 à 01:02:00    

Zedlefou a écrit :

N'écoute pas les on m'a dit.
http://www.adobe.com/products/play [...] ation.html
Franchement vu la différence autant faire pour du Flash 8 et puis basta.
 
Pour charger ta vidéo t'utilise quoi ?


 
Merci. T'as raison!  
Mais ca résoud pas mon pb. Le code de mon menu ne marche pas ni avec FP7, ni avec FP8. Ila été fait pour le 6!!
J'ai envoyé un mail au concepteur, il m'a dit que j'avais qu'a faire tout mon site en 6. Mais une grande partie du reste de mon code (slideto, etc) ne marche qu'a partir de 7. Alors je suis sacrement coinçée!...
 
Pour la video (DansF8 je n'ai le choix qu'entre fp7 ou 8 pour l'encodage video.), je fait appel à NetStream avec un objet video et des boutons faits maison. Tous ne marchent pas d'ailleurs, je galère avec le mute. J'aurais préféré prendre un FLVPb mais j'avais besoin de la transparence pour le design...  
http://ciegecko.free.fr/photovideovid.jpg
ex de code :

Code :
  1. //VIDEO-----------------------------------------------------------------------------
  2. //Import du fichier XML
  3. Chemin = new Array();
  4. Titre = new Array();
  5. no_1 = 0;
  6. nb_art = 0;
  7. NB = this;
  8. Pfd = 50;
  9. var myXML = new XML();
  10. myXML.ignoreWhite = true;
  11. myXML.onLoad = function(flag) {
  12. if (flag) {
  13.  i = 0;
  14.  x = myXML.firstChild;
  15.  y = 10;
  16.  while (x.childNodes[i] != undefined && i<20) {
  17.   Chemin[i] = x.childNodes[i].childNodes[0].attributes.value;
  18.   Titre[i] = x.childNodes[i].childNodes[1].attributes.value;
  19.   attachMovie("MenuVid","menu_"+i,i,{_x:365,_y:290+y,t_vid:Titre[i],c_vid:Chemin[i]});
  20.   equalizer._visible=0;
  21.   y+=14;
  22.   i++;
  23.  }
  24.  nb_art = i;
  25. }
  26. play();
  27. };
  28. switch (this._parent.crea){
  29. case "agh" :
  30. trace("liste agh loadee" );
  31. myXML.load("XML/ListAgh.xml" );
  32. break;
  33. case "DuoDedie" :
  34. trace("liste DuoDedie loadee" );
  35. myXML.load("XML/ListDuoDedie.xml" );
  36. break;
  37. case "Entre2" :
  38. trace("liste Entre2 loadee" );
  39. myXML.load("XML/ListEntre2.xml" );
  40. break;
  41. case "JALR" :
  42. trace("liste JALR loadee" );
  43. myXML.load("XML/ListJALR.xml" );
  44. break;
  45. case "Jmenfous" :
  46. trace("liste Jmenfous loadee" );
  47. myXML.load("XML/ListJmenfous.xml" );
  48. break;
  49. case "Mue" :
  50. trace("liste Mue loadee" );
  51. myXML.load("XML/ListMue.xml" );
  52. break;
  53. case "Sol" :
  54. trace("liste Sol loadee" );
  55. myXML.load("XML/ListSol.xml" );
  56. break;
  57. case "Up2Live" :
  58. trace("liste Up2Live loadee" );
  59. myXML.load("XML/ListUp2Live.xml" );
  60. break;
  61. case "Atel" :
  62. trace("liste Ateliers loadee" );
  63. myXML.load("XML/ListAteliers.xml" );
  64. break;
  65. case "Extraits" :
  66. trace("liste Extraits loadee" );
  67. myXML.load("XML/ListExtraits.xml" );
  68. break;
  69. default :
  70. trace("liste default loadee" );
  71. break;
  72. };
  73. stop();
  74. //Declaration des variables pour NetStream
  75. var netConn:NetConnection = new NetConnection();
  76. netConn.connect(null);
  77. var netStream:NetStream = new NetStream(netConn);
  78. ma_video.attachVideo(netStream);
  79. netStream.setBufferTime(5);
  80. dmcChargement = setInterval( chargement, 30 );
  81. dmcPosition = setInterval( position, 100 )
  82. txt = "";
  83. //display = "";
  84. equalizer._visible=0;
  85. netStream.onStatus = function(info) {
  86. if (info.code == "NetStream.Play.StreamNotFound" ) {
  87.  txt = "Pas de video.";
  88. }
  89. };
  90. //Récupération de la durée totale du FLV
  91. //Attention FLV doit être encoder avec Flash
  92. //netStream.onMetaData = function(obj) {
  93. //for (var x in obj){
  94. //trace("FLV "+x+" is "+obj[x]);
  95. //}
  96. //}
  97. function chargement(){
  98. //Mise en pourcentage
  99. var pourcentage = Math.round(netStream.bytesLoaded*100/netStream.bytesTotal);
  100. //trace(netStream.bytesTotal)
  101. //Modification de la barre de chargement
  102. barre_conteneur.barre._xscale = pourcentage;
  103. //Suppression  de la variable interval quand tout est chargé
  104. if(pourcentage==100){
  105.  clearInterval(dmcChargement);
  106.  barre_conteneur._visible=0;
  107. }
  108. }
  109. //Gestion Volume Sonore
  110. piste_pan.attachAudio(netStream);
  111. var DmcSound = new Sound("piste_pan" );
  112. // Equalizer en actionscript
  113. equalizer.onEnterFrame = function() {
  114. i++;
  115. this.createEmptyMovieClip("graph"+i, i);
  116. with(this["graph"+i]) {
  117.  _x = 0;
  118.  _y = 0;
  119.     beginFill(0x666666, 50);
  120.  moveTo(0,0);
  121.  for (j=0; j< 3; j++) {
  122.   z = random(12)+8;
  123.   lineTo(j*6,-1);
  124.   lineTo(j*6,-z);
  125.   lineTo(j*6+4,-z);
  126.   lineTo(j*6+4,-1);
  127.   lineTo(j*6,-1);}
  128.  lineTo(j*6,0);
  129.  lineTo(0,0);
  130.  endFill(); }
  131. i >= 3 ? i=0: null; };
  132. // Fin VIDEO------------------------------------------------------------------------


 
et pour mes boutons :

Code :
  1. mute.onRollOver = function(){
  2. if(DmcSound.getVolume() == 100) {
  3.  this.gotoAndStop("OnOver" );
  4. }
  5. else {
  6.  this.gotoAndStop("MuteOver" );
  7. }
  8. }
  9. mute.onRollOut = function(){
  10. if(DmcSound.getVolume() == 100) {
  11.  this.gotoAndStop("On" );
  12. }
  13. else {
  14.  this.gotoAndStop("Mute" );
  15. }
  16. }
  17. mute.onRelease = function(){
  18. if(DmcSound.getVolume() == 100) {
  19.  DmcSound.setVolume(0);
  20.  this.gotoAndStop("MuteOver" );
  21. }
  22. else {
  23.  DmcSound.setVolume(100);
  24.  this.gotoAndStop("OnOver" );
  25. }
  26. }
  27. //Fonctions Boutons
  28. play_mc.onRelease = function() {
  29. this._parent.txtc.textColor = 0xcc9900;
  30. txt = Titre[no_1];
  31. equalizer._visible=1;
  32. if(netStream.time == 0){
  33.  netStream.play(Chemin[no_1])
  34. }else{
  35.  netStream.pause(false);
  36.  //display = netStream.time
  37. }
  38. };
  39. pause_mc.onRelease = function() {
  40. netStream.pause(true);
  41. equalizer._visible=0;
  42. };
  43. stop_mc.onRelease = function() {
  44. netStream.pause(true);
  45. equalizer._visible=0;
  46.  _root.netStream.seek(0);
  47. }
  48. retour_mc.onPress = function() {
  49. onEnterFrame=function(){
  50.  netStream.seek(netStream.time-3);
  51.  ns_seconds = netStream.time-3;
  52.  minutes = Math.floor(ns_seconds/60);
  53.  seconds = Math.floor(ns_seconds%60);
  54.    if (seconds<10) {
  55.      seconds = "0"+seconds;
  56.   }
  57.    if (seconds<60) {
  58.      minutes = "0"+minutes;
  59.   }
  60.    display = +minutes+":"+seconds;
  61.   }
  62. };
  63. retour_mc.onRelease = function() {
  64.  onEnterFrame=function(){
  65.  ns_seconds = netStream.time;
  66.  minutes = Math.floor(ns_seconds/60);
  67.  seconds = Math.floor(ns_seconds%60);
  68.    if (seconds<10) {
  69.      seconds = "0"+seconds;
  70.   }
  71.    if (seconds<60) {
  72.      minutes = "0"+minutes;
  73.   }
  74.    display = +minutes+":"+seconds;
  75.   }
  76. };
  77. avance_mc.onPress = function() {
  78. onEnterFrame=function(){
  79.  netStream.seek(netStream.time+1);
  80.  ns_seconds = netStream.time+1;
  81.  minutes = Math.floor(ns_seconds/60);
  82.  seconds = Math.floor(ns_seconds%60);
  83.    if (seconds<10) {
  84.      seconds = "0"+seconds;
  85.   }
  86.    if (seconds<60) {
  87.      minutes = "0"+minutes;
  88.   }
  89.    display = +minutes+":"+seconds;
  90.   }
  91. };
  92. avance_mc.onRelease = function() {
  93. onEnterFrame=function(){
  94.  ns_seconds = netStream.time;
  95.  minutes = Math.floor(ns_seconds/60);
  96.  seconds = Math.floor(ns_seconds%60);
  97.    if (seconds<10) {
  98.      seconds = "0"+seconds;
  99.   }
  100.    if (seconds<60) {
  101.      minutes = "0"+minutes;
  102.   }
  103.    display = +minutes+":"+seconds;
  104.   }
  105. };
  106. prev_mc.onRelease = function(){
  107. netStream.seek(0);
  108. netStream.pause(true);
  109. if (no_1>0) {
  110.  no_1--;
  111. } else {
  112.  no_1 = nb_art-1;
  113. }
  114. txt = Titre[no_1];
  115. netStream.play(Chemin[no_1]);
  116. }
  117. next_mc.onRelease = function() {
  118. netStream.seek(0);
  119. netStream.pause(true);
  120. if (no_1<nb_art-1) {
  121.  no_1++;
  122. } else {
  123.  no_1 = 0;
  124. }
  125. txt = Titre[no_1];
  126. netStream.play(Chemin[no_1]);
  127. }
  128. this.stop();
  129. //Récupération du temps lecture
  130. this.onEnterFrame = function (setime){
  131. ns_seconds = netStream.time;
  132. minutes = Math.floor(ns_seconds/60);
  133. seconds = Math.floor(ns_seconds%60);
  134.   if (seconds<10) {
  135.     seconds = "0"+seconds;
  136. }
  137.   if (seconds<60) {
  138.     minutes = "0"+minutes;
  139. }
  140.   display = +minutes+":"+seconds;
  141. }


 
D'ailleurs t'as ptetre une idée. J'ai 17 pages avec chacune une liste de videos générée par xml. Le seul moyen que j'ai trouvé est de mettre tout le code video dans un mc, que je load et unload a chaque fois avec un attachmovie  et une variable differents pour le texte et la liste xml. Je trouve ca un peu compliqué mais je suis pas assez calée pour trouver mieux pour l'instant. Le code est du style :

Code :
  1. function Videopage(){
  2. // des1erePage._visible = false;
  3. _root.des1erePage.alphaTo(5,0.8,"linear" );
  4. removeMovieClip(this.VideoPage);
  5. attachMovie("VideoPage","VideoPage",5,{_x:108.1,_y:600});
  6. _root.VideoPage.slideTo("_x",150.8,1.8, "easeOutCircle" )
  7. }
  8. //BOUTONS MENU
  9. this.menuVideo.BtnsCrea.AteliersBtn.onPress = function(){
  10. Videopage();
  11. crea = "Atel";
  12. _root.VideoPage.Page.attachMovie("VideoPageAteliers","PageAteliers",10);
  13. }


 
Tout le code video ne marche pas si je publie en FP6.
C'est pourquoi le plus simple pour moi serait de coder le menu pour FP7 minimum. J'ai essayé mais je n'y arrive pas. Je bloque sur la partie "op1", "op2" etc. Je n'y arrive pas. Tu saurais me coder cette partie pour FP7 ou 8?

Reply

Marsh Posté le 29-03-2007 à 11:46:23    

Ce que j'ai du mal à comprendre, c'est comment tu t'es tapé tout le code de la vidéo alors que tu n'arrives même pas à corriger le code du menu.
Bref

Citation :

btn.onPress = function() {
 startDrag(this, false, 27, 20, 750, 500);
};
btn.onRelease = function() {
 stopDrag();
};
// Les 2 clips qui suivent
onEnterFrame = function () {
 for (i=1; i<3; i++) {
  var mc = this["op"+i];
  mc._x = btn._x;
  mc._y = btn._y+25*i;
 }
};

 

Essaie ça. Dans mon exemple j'ai appelé le bouton "btn".
Dis moi si c'est ça que ça doit faire...

Message cité 1 fois
Message édité par Zedlefou le 29-03-2007 à 11:47:27

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 29-03-2007 à 17:01:50    

Zedlefou a écrit :

Ce que j'ai du mal à comprendre, c'est comment tu t'es tapé tout le code de la vidéo alors que tu n'arrives même pas à corriger le code du menu.
Bref

Citation :

btn.onPress = function() {
 startDrag(this, false, 27, 20, 750, 500);
};
btn.onRelease = function() {
 stopDrag();
};
// Les 2 clips qui suivent
onEnterFrame = function () {
 for (i=1; i<3; i++) {
  var mc = this["op"+i];
  mc._x = btn._x;
  mc._y = btn._y+25*i;
 }
};


 
Essaie ça. Dans mon exemple j'ai appelé le bouton "btn".
Dis moi si c'est ça que ça doit faire...


 
Merci. La partie drag fonctionne, la deuxième partie n'a pas de rebondi!  
Pour répondre à ta question pour la video je me suis inspirée de plusieurs codes qui marchaient déjà avec FP7 alors je les ai juste modifiés...
Celui là, rien ne marche avec FP7. Donc je dois tout réinventer. J'ai essayé de traduire style : "mot à mot" mais ça marche pas et c'est surtout cette partie du code, avec le rebondi, que je ne sais pas comment faire :

Code :
  1. onClipEvent (load) {
  2. org_x = this._x;
  3. org_y = this._y;
  4. newX = _x;
  5. newY = _y;
  6. }
  7. onClipEvent (enterFrame) {
  8. Xspeed = ((_x-newX)/_root.velocita+Xspeed)/_root.frenata;
  9. _x -= Xspeed;
  10. Yspeed = ((_y-newY)/_root.velocita+Yspeed)/_root.frenata;
  11. _y -= Yspeed; 
  12. if (velocita<2) {   
  13. velocita=2;
  14. if (frenata<1) {   
  15. frenata=1;
  16. }
  17. _root.op2.newX = (this._x);
  18. _root.op2.newY = (this._y)+25;
  19. }


 
Pour cette partie, j'ai essayé avec ton exemple mais je n'arrive pas à implémenter les variables newX et newY et manifestement on en a besoin pour l'effet rebondi avec velocita etc :
 
En fait, je ne comprends pas à quoi sert org_x?
 
Ce que j'ai compris c'est que :  
on load d'"op", "op1" se décale immédiatement de 25px en y (il se positionne à droite de "op" avec un effet de rebondi),  
on load d'"op1" newX et newY prennent une autre valeur? (la je comprends pas)  
puis on enterframe : lorsque on drag "op", "op1", "op2" etc, les autres items viennent se placer les uns après les autres sous "op1" tjrs avec cet effet de rebondi (la j'arrive pas du tout a traduire le code pour le rebondi!!!!).
 
J'ai mis l'exemple swf du menu qui marche en FP6 ainsi que le .fla correspondant zippé à cette adresse : http://ciegecko.free.fr/debug%20menu.html
Ca peut peut-etre t'aider à comprendre.
En tout cas un immense MERCI pour ton aide!


Message édité par co2nexions le 29-03-2007 à 17:03:56
Reply

Marsh Posté le 29-03-2007 à 19:00:18    

Pusiqu'on en est à moderniser ton code, utilise la class Tween pour faire cet effet, ça ira plus vite ...


Message édité par Zedlefou le 29-03-2007 à 19:00:29

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 29-03-2007 à 19:20:22    

la class Tween?

Reply

Marsh Posté le 29-03-2007 à 19:21:11    

ca fera le meme effet?

Reply

Marsh Posté le 29-03-2007 à 19:21:11   

Reply

Marsh Posté le 29-03-2007 à 19:32:58    

je suis en train de le faire avec slideTo de Robert Penner ca marche sauf que onEnterFrame n'a l'air de marcher qu'une fois. op1 ne suit pas op quand je drag???, j'y comprend rien :

Code :
  1. this.op.onEnterFrame = function(){
  2.              newX = (this._x) + 25;
  3. newY = (this._y);
  4. this.op1.slideTo(newX,newY,0.8, "easeOutCircle" )
  5. }


 
Je ne sais pas comment faire pour qu'"op1" suive "op" quand on le drag. Il faudrait une fonction qui réactualise newX et newY constamment et une autre sur "op1" qui déclanche constamment le slide avec ces nouvelles données. Je t'avoue que je suis perdue!

Reply

Marsh Posté le 29-03-2007 à 19:50:18    

je ne sais pas si je peux utiliser .addlistener, ni comment (ca a l'air super compliqué!)?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed